用Codedom生成C#自动属性
答
。净)。因此,您不会在CodeDom中找到特定语言的语法糖。
答
其实关于它的评论很容易使用CodeSnippetStatement是误导性的,因为CodeTypeDeclaration没有语句集合,您可以添加这些片段。
答
您可以为此使用CodeSnippetTypeMember类。
例如:
CodeTypeDeclaration newType = new CodeTypeDeclaration("TestType");
CodeSnippetTypeMember snippet = new CodeSnippetTypeMember();
snippet.Comments.Add(new CodeCommentStatement("this is integer property", true));
snippet.Text="public int IntergerProperty { get; set; }";
newType.Members.Add(snippet);
答
你可以这样做:根据How to: Create a Class Using CodeDOM
// Declare the ID Property.
CodeMemberProperty IDProperty = new CodeMemberProperty();
IDProperty.Attributes = MemberAttributes.Public;
IDProperty.Name = "Id";
IDProperty.HasGet = true;
IDProperty.HasSet = true;
IDProperty.Type = new CodeTypeReference(typeof(System.Int16));
IDProperty.Comments.Add(new CodeCommentStatement(
"Id is identity"));
targetClass.Members.Add(IDProperty);
+0
这不起作用,因为它会生成两个空的'set'和'get'方法,这将导致编译错误。 'CodeSnippetTypeMember'(http://*.com/a/23876973/191148)是解决方案 – 2016-02-19 09:39:03
所以在那里,我可以使用任何其他库? – 2010-01-23 10:39:17
@Yassir创建一个支持字段并在getter/setter中使用它们真的不那么难。 – chakrit 2010-01-23 10:44:01
你不需要;正如Marc Gravell所说,你需要自己实现它,因为它们只是一个编译器技巧(即.net编译器创建一个私有变量来保存自动属性值) – 2010-01-23 10:44:22