2011-06-13 51 views
0

在Visual Studio中,可以将xml注释添加到方法/类中以提供文档。 见http://msdn.microsoft.com/en-us/magazine/cc302121.aspx在C#中,有没有办法在运行时访问源代码中的xml注释(VS中的标签)?

Visual Studio从这些XML注释生成文件并导出它们,因此它们可以被访问。

我的问题是,是否有一种让程序在运行时访问xml文本的类? (我认为蛮力的方式是解析导出的文件,但这不是一个整洁的解决方案)

我想这样做的原因是因为我正在为一个更大的程序做一种帮手程序,所以我想输出xml注释到屏幕上。我通过反射获得了属性名称,那么是否有办法将名称反馈给某个类并获取xml文档?

我试过已经搜索过,但找不到任何东西。我可能会写得很糟糕。这可能吗?

回答

1

就我而言,XML注释不会作为元数据保存在程序集二进制文件(.exe或.dll)中。所以唯一的选择是直接解析由Visual Studio生成的XML文件。

2

将XML注释从可执行文件中剥离 - 这就是为什么有一个特殊的编译器标志来从它们生成XML文档,所以它们不会丢失。

有些工具可以帮助您从这些XML文件中生成HTML帮助和其他格式。

1

尝试DocsByReflection

// From type. 
var typeDoc = DocsService.GetXmlFromType(typeof(Stub)); 

// From property. 
var propertyInfo = typeof(Stub).GetProperty("PropertyWithDoc"); 
var propertyDoc = DocsService.GetXmlFromMember(propertyInfo); 

// From method. 
var methodInfo = typeof(Stub).GetMethod("MethodWithGenericParameter"); 
var methodDoc = DocsService.GetXmlFromMember(methodInfo); 

// From assembly. 
var assemblyDoc = DocsService.GetXmlFromAssembly(typeof(Stub).Assembly); 
相关问题