![](/img/trans.png)
[英]Using a generic argument in a generic method parameter created by CodeDOM
[英]How to create a generic class using CodeDOM whose generic parameter is a type that I created?
我有一个使用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
,这是我需要的。 我能做什么? 我不想把类的字符串名字,因为这可能会导致错误。
恐怕你做不到。 似乎没有要任何方式来创建一个CodeTypeReference
从CodeTypeDeclaration
。 我认为这是因为CodeTypeDeclaration
不知道它在哪个命名空间中,所以没有安全的方法可以做到这一点。
另一方面,在创建泛型类型的CodeTypeReference
时,您无需使用泛型的名称:
var listType = new CodeTypeReference(typeof(List<>));
listType.TypeArguments.Add(typeof(int));
无论出于何种原因,选择的答案都不适用于我,但这确实可行:
var listType = new CodeTypeReference("List", new[] { new CodeTypeReference(typeof(int)) });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.