基本上,我试图将所有文档保存在单独的文件中并使用<include>
标记。这将让我保持我的源代码免于文档混乱。我仍然希望有一些方法可以获得有关类和成员的开发人员注释,因此我使用了<devdoc>
标记。现在问题是Visual Studio将我的开发人员注释添加到xml文档文件中。有没有办法不将它编译到xml文档中?
/// <devdoc>This is an interesting Foo class</devdoc>
/// <include file="docs.xml" path='Doc/Member[@for="MyNamespace.Foo"]/*' />
public class Foo { ... }
导致:
<member name="T:MyNamespace.Foo">
<devdoc>This is an interesting Foo class</devdoc>
<Summary>Some summary for testing.</Summary>
</member>
我意识到Sandcastle在生成文档时不会使用<devdoc>
类,但如果我想提供关于我的库的intellisense信息,我需要包含生成的xml文件。如果这是不可能的,那不是世界末日,但我希望有一种方法可以将它排除在外。
答案 0 :(得分:0)
我会创建一个简单的控制台应用程序,它将从构建后的事件中调用。该应用程序将删除所有&lt; devdoc&gt;标签。它可以非常简单。只需阅读生成的XML文件并使用如下所示的正则表达式:
using System.Text.RegularExpressions;
Regex regex = new Regex("<devdoc>(.|\n)*</devdoc>", RegexOptions.Compiled | RegexOptions.Multiline);
s = regex.Replace(s, string.Empty);
您还可以使用XmlDocument及其GetElementsByTagName方法,然后使用XmlNode.RemoveChild删除标记。但我相信正则表达式会更有效率。