2011-06-13 16 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); 
相關問題