gpt4 book ai didi

c# - Reflection.Emit 中的 IEnumerable 属性创建

转载 作者:太空宇宙 更新时间:2023-11-03 10:26:32 24 4
gpt4 key购买 nike

我正在尝试创建 IEnumerable<AnotherDynamicType> 类型的属性使用 Reflection.Emit .

我有一个辅助方法可以很好地添加属性,接受类型作为输入:

public void AddProperty(TypeBuilder typeBuilder, string propertyName, Type type) 
{
....
}

可以这样调用:

AddProperty(typeBuilder,"MyPropertyName",typeof(string));

但是现在我想给类添加一个属性:

public IEnumerable<AnotherDynamicType> MyList {get;set;}

假设目标 AnotherDynamicType,如何为调用定义此属性的“类型”也是动态创建的?

以下不编译:

AddProperty(typeBuilder,"MyPropertyName",typeof(IEnumerable<typeof(anotherDynamicType)>));

最佳答案

您可以使用 Type.MakeGenericType :

var anotherTypeEnumerable = typeof(IEnumerable<>)
.MakeGenericType(anotherDynamicType);

关于c# - Reflection.Emit 中的 IEnumerable 属性创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31458669/

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