5

私はこのようなジェネリック型を持っています

public class Entity<T> where T : Entity<T>{ ... }

そして、型 T を動的に構築する必要があります。そのため、次のようになります。

public class MyClass : Entity<MyClass>{ ... }

これはできますか?

4

1 に答える 1

6
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();
于 2012-04-05T00:11:33.160 に答える