使用CodeDOM生成C#代码时,将CodeCommentStatement添加到CodeMemberProperty

时间:2014-04-25 13:23:45

标签: c# codedom

使用CodeDOM生成C#代码时,是否有人知道如何将CodeCommentStatement添加到CodeMemberPropert?

我试过了:

var docStart = new CodeCommentStatement("<summary>", true);
var docContent = new CodeCommentStatement("The description of property", true);
var docEnd = new CodeCommentStatement("</summary>", true);

var property = new CodeMemberProperty {
    Name = name,
    HasGet = true,
    Attributes = MemberAttributes.Public | MemberAttributes.Static,
    Type = new CodeTypeReference(typeof(byte[]))    
};

var documentation = new CodeCommentStatementCollection { docStart, docContent, docEnd}
property.Comments = new CodeCommentStatementCollection(documentation);

但是评论财产没有设定......

enter image description here

有解决方法吗?

1 个答案:

答案 0 :(得分:3)

我建议将这些项目添加到现有CodeCommentStatementCollection,而不是创建一个新项目:

CodeCommentStatement[] documentation = { docStart, docContent, docEnd}
property.Comments.AddRange(documentation);

该集合提供了为数组添加AddAddRange,为CodeCommentStatementCollection添加AddRange的常用方法。

正如评论中的 @svick 所指出的,您还可以在实例化对象时指定值,例如:

var property = new CodeMemberProperty {
                   // Other initialization values
                   Comments = { docStart, docContent, docEnd } }

如果你想知道为什么以及如何在readonly属性上工作,请参阅此question及其答案。