[英]Creating a class with CodeTypeDeclaration and adding members to it
我在這樣的CodeTypeDeclaration的幫助下聲明了一個類:
CodeTypeDeclaration targetClass = new CodeTypeDeclaration(sType);
我可以添加一個構造函數:
CodeConstructor constructor = new CodeConstructor();
constructor.Attributes = MemberAttributes.Public;
或成員字段:
CodeMemberField myField = new CodeMemberField();
myField.Name = fieldName;
myField.Type = new CodeTypeReference(fieldType);
targetClass.Members.Add(myField);
但是我試圖添加任何類型的行,例如常量聲明:
const addressFilteresErrorCounters: UInt32 = 0x0000AE77;
我可以不使用CodeMemberField來做到這一點嗎? 也許我可以以某種方式將CodeSnippetStatement添加到類中,所以簡單地說,通過使用強制在類中添加一些行,而不用CodeMemberField過濾聲明行?
也許像這樣:
targetClass.Members.Add(new CodeSnippetStatement("var n = 2"));
謝謝。
您不能將CodeSnippetStatement
直接添加到類。 但是,您可以將它們添加到CodeMemberMethod
,例如:
CodeMemberMethod method = new CodeMemberMethod();
method.Name = "DoSomething";
method.Attributes = MemberAttributes.Public | MemberAttributes.Final;
method.Statements.Add(new CodeSnippetStatement("var n = 2;"));
盡管您無需CodeSnippetStatement
來添加常量。 您可以使用:
CodeTypeDeclaration exampleClass = new CodeTypeDeclaration("GeneratedClass");
CodeMemberField constant = new CodeMemberField(new CodeTypeReference(typeof(System.UInt32)), "addressFilteresErrorCounters");
constant.Attributes = MemberAttributes.Const;
constant.InitExpression = new CodePrimitiveExpression(0x0000AE77);
exampleClass.Members.Add(constant);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.