Я пытаюсь использовать Refle.emit генерировать следующий класс:Использование отражения для определения свойства с TYPEOF вложенного типа
public class Parent {
public class Child { }
public Child MyChild { get; set; }
}
Так вот что сделал:
static void Main(string[] args) {
AssemblyName newAssembly = new AssemblyName("myAssembly");
AppDomain appDomain = System.Threading.Thread.GetDomain();
AssemblyBuilder assemblyBuilder =
appDomain.DefineDynamicAssembly(newAssembly, AssemblyBuilderAccess.RunAndSave);
ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule(newAssembly.Name);
TypeBuilder parentBuilder = moduleBuilder.DefineType("Parent");
TypeBuilder childBuilder = parentBuilder.DefineNestedType("Child");
parentBuilder.DefineProperty("MyProperty", PropertyAttributes.None, childBuilder.CreateType(), null);
parentBuilder.CreateType();
}
я получаю исключение : «Не удалось загрузить тип« Родитель »из сборки« myAssembly »в parentBuilder.DefineProperty (...,
Я не нашел способа создать родительский класс без создания дочернего класса в другая сборка. Какие-либо предложения?
Спасибо за быстрый ответ. Я не понял, что могу передать TypeBuilder как возвращаемый тип. –
Добро пожаловать в SO! Поскольку вы новичок, вы можете проверить эту ссылку. –