Как Вы встраиваете другие языки программирования в свой код?

Если вы производите какой-либо класс из базового класса, то вам следует либо добавить конструктор без параметров в базовый класс, либо указать конструктор базового класса, который будет вызываться в производном классе. Итак, чтобы решить вашу проблему: Решение 1: Добавьте конструктор без параметров в базовый класс, т.е. в MaliciousSmall as,

public MaliciousSmall()
{
}

Решение 2: Укажите конструктор базового класса в конструкторе производного класса как,

public DataRow row;
public Malicious: base(row)
{
}

Надеюсь, это поможет вам!

5
задан Neil N 20 May 2009 в 20:11
поделиться

4 ответа

Очевидно, что второй путь яснее. На самом деле не могло быть никаких причин для первого.

Я бы, однако, расширил его до следующего:

string someJavaScript = string.Format(@"
    <script language='JavaScript' >
      function foo()
      {
          var bar = '{0}';
      }
    </script>", blah);

Если у вас есть несколько вещей, которые нужно вставить внутри строки, метод string.Format станет скорее более читаемый, чем встроенная конкатенация.

7
ответ дан 18 December 2019 в 09:52
поделиться

Строковый литерал по одной причине: удобочитаемость.

(производительность не является проблемой, мы говорим о МОССЕ ...)

1
ответ дан 18 December 2019 в 09:52
поделиться

Второй способ, хотя использование внешнего файла намного лучше и позволяет изменения, которые необходимо внести в приложение без его перекомпиляции.

Вам также понадобится хороший, читаемый способ вставки переменных. Самый простой подход - использовать string.Format, но тогда каждая переменная будет {0} или {1}, и это может быть нечитаемым.

Как насчет:

public static string Insert(object dictionary, string into)
{
    foreach (PropertyInfo property in dictionary.GetType().GetProperties())
        into = into.Replace("<%" + property.Name + "%>", 
                            property.GetValue(dictionary, null).ToString());

    return into;
}

Тогда вы можете сделать это:

string js = Insert(new { divList, url }, 
                   @"jQuery(document).ready(function(){
                        jQuery('#<%divList%>').jqGrid({
                            url:'<%url%>',
                            datatype: 'json',
                            mtype: 'GET', ... etc...");

Или если сценарий находится во внешнем файле:

string js = Insert(new { divList, url }, File.ReadAllText("someFile.js"));

Вы можете передать любой объект, и его свойства будут напрямую доступны через синтаксис экранирования в стиле ASP.

Реализация, приведенная выше, очевидно, не очень эффективна, но она коротка.

Другая возможность - написать страницу .aspx, которая возвращает JavaScript, а затем вы можете включить ее в свои HTML-страницы со ссылкой