Rus*_*uan 4 c# generics reflection reflection.emit
我有一个看起来像这样的泛型类型
public class Entity<T> where T : Entity<T>{ ... }
Run Code Online (Sandbox Code Playgroud)
我需要动态构造类型T.所以它看起来像这样:
public class MyClass : Entity<MyClass>{ ... }
Run Code Online (Sandbox Code Playgroud)
可以这样做吗?
AssemblyName assemblyName = new AssemblyName("TestAssembly");
AssemblyBuilder assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Run);
ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule(assemblyName.Name);
TypeBuilder typeBuilder = moduleBuilder.DefineType("MyClass", TypeAttributes.Public);
Type entityType = typeof(Entity<>).MakeGenericType(typeBuilder);
typeBuilder.SetParent(entityType);
Type t = typeBuilder.CreateType();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
478 次 |
最近记录: |