Как динамически создать класс C#, который наследует от общего базового класса, ссылающегося на себя (t: base )?C#

Место общения программистов C#
Ответить
Anonymous
 Как динамически создать класс C#, который наследует от общего базового класса, ссылающегося на себя (t: base )?

Сообщение Anonymous »

Я пытаюсь динамически генерировать C# class t во время выполнения, используя Offuret.emit (или другие методы создания динамического типа). Задача состоит в том, что базовый класс представляет собой общий тип U , который является уже статически определенным , и я хочу, чтобы динамически созданный класс наследовал от него, используя себя в качестве аргумента типа. Другими словами, я хочу создать тип, который удовлетворяет: < /p>

Код: Выделить всё

class T : U { }
Сложность заключается в том, что T не существует в тот момент, когда мне нужно указать общий аргумент для базового класса. Я пробовал подходы, такие как: < /p>

Код: Выделить всё

Type baseType = typeof(U).MakeGenericType(dynamicTypeBuilder); // incorrect
… Но это не компилируется, потому что Dynamictypebuilder еще не является завершенным типом.
Есть ли способ в C# для динамического создания типа t , что он определяет от общего базового класса u , где t определяется? Если да, то как это можно сделать, используя отражение. EMIT или аналогичные механизмы генерации типа выполнения?>

Подробнее здесь: https://stackoverflow.com/questions/797 ... -base-clas
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»