gpt4 book ai didi

c# - 动态创建具有自引用约束的 C# 泛型类型

转载 作者:太空狗 更新时间:2023-10-30 01:08:15 30 4
gpt4 key购买 nike

我有一个看起来像这样的泛型

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

我需要动态构造类型 T。所以它看起来像这样:

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

这可以做到吗?

最佳答案

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();

关于c# - 动态创建具有自引用约束的 C# 泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10020872/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com