Я строй динамического типа, который наследует от исходного типа, и я хотел бы сохранить первоначальный вид в его интерфейс:Присвоить значение переменного с IL MethodBuilder
public interface IInterface
{
Type OriginalType { get; }
}
Так что я могу используйте оригинал, когда мне нужно, вместо динамически созданного типа.
Как можно присвоить такое значение? Есть ли для этого конкретный OpCode или есть способ, чтобы класс «знал» его базовый класс во время строительства?
Моя рекомендация будет первым сделать эквивалент того, что вы хотите, чтобы излучать в C#, а затем посмотреть на MSIL разборки для этого. –
@ 500-InternalServerError Я не знаю, как, поэтому я спросил, есть ли способ назначить его определенным значением во время создания (как если бы я набрал базовый тип, который я не знаю во время компиляции). Если я набираю результат с помощью определенного типа, этот конкретный тип появляется в ILCode из ILDasm, который на самом деле не нужен мне ... – Danicco
Вы действительно хотите сохранить объект 'System.Type' для того типа, который наследуется, или вы действительно хотите сохранить _instance_ этого типа? То есть, если бы вы определяли 'класс MyDynamicClass: MyBaseClass', было бы поле' _original' определено как 'Type _original' или как' MyBaseClass_original'? Хранение 'System.Type' кажется менее полезным, поэтому я спрашиваю. – Andrew