CodeDom - Назовите общий метод

Для этой функции, я думаю, вам нужно использовать Redux

6
задан Fionn 30 December 2008 в 12:53
поделиться

1 ответ

Можно найти ответ здесь в MSDN:

прокрутите вниз к примеру C# (CodeDomGenericsDemo).

Общий метод сгенерирован:

 public virtual void Print<S, T>()
            where S : new()
        {
            Console.WriteLine(default(T));
            Console.WriteLine(default(S));
        }

и позже выполненный в примере:

dict.Print<decimal, int>();

Код для генерации вызова к методу:

 methodMain.Statements.Add(new CodeExpressionStatement(
                 new CodeMethodInvokeExpression(
                      new CodeMethodReferenceExpression(
                         new CodeVariableReferenceExpression("dict"),
                             "Print",
                                 new CodeTypeReference[] {
                                    new CodeTypeReference("System.Decimal"),
                                       new CodeTypeReference("System.Int32"),}),
                                           new CodeExpression[0])));

(Вы использовали бы CodeThisReferenceExpression () или CodeBaseReferenceExpression () вместо CodeVariableReferenceExpression), не уверенный, если, именно это Вы подразумеваете под вызовом стандартного метода базового класса.

12
ответ дан 9 December 2019 в 20:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: