gpt4 book ai didi

c# - 如何使用其泛型参数是我创建的类型的 CodeDOM 创建泛型类?

转载 作者:太空狗 更新时间:2023-10-29 20:25:05 25 4
gpt4 key购买 nike

我有一个使用 CodeDOM 创建的类:

CodeTypeDeclaration some_class = new CodeTypeDeclaration("SomeClass");
// ... properties and methods creation elided

我想创建一个“SomeClass”类型的列表。但是,我似乎无法这样做:

var list_type = new CodeTypeReference(typeof (List<>).Name, ??? some_class ???);
var member_field = new CodeMemberField(list_type, field_name)
{
Attributes = MemberAttributes.Private,
};

CodeTypeReference 不接受我需要的 CodeTypeDeclaration。我能做什么?我不想将类名作为字符串传递,因为这可能会导致错误。

最佳答案

恐怕你做不到。似乎没有任何方法可以从 CodeTypeDeclaration 创建 CodeTypeReference。我认为那是因为 CodeTypeDeclaration 不知道它在哪个命名空间中,所以没有安全的方法来做到这一点。

另一方面,在为泛型类型创建CodeTypeReference 时,您不需要使用泛型类型的名称:

var listType = new CodeTypeReference(typeof(List<>));
listType.TypeArguments.Add(typeof(int));

关于c# - 如何使用其泛型参数是我创建的类型的 CodeDOM 创建泛型类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9490487/

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