[英]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.