我同意gurra777創建一個新班級是一個更安全的升級途徑。我從這個解決方案開始,但是它涉及大量的複製/麪食,在幾次軟件包更新之後很容易就會過時。
取而代之的是,我收集了一批XmlDocumentationProvider
的孩子。對於每種實現方法,我都會調用子進程來獲取第一個非空結果。
public class MultiXmlDocumentationProvider : IDocumentationProvider, IModelDocumentationProvider
{
private IList<XmlDocumentationProvider> _documentationProviders;
public MultiXmlDocumentationProvider(string xmlDocFilesPath)
{
_documentationProviders = new List<XmlDocumentationProvider>();
foreach (string file in Directory.GetFiles(xmlDocFilesPath, "*.xml"))
{
_documentationProviders.Add(new XmlDocumentationProvider(file));
}
}
public string GetDocumentation(System.Reflection.MemberInfo member)
{
return _documentationProviders
.Select(x => x.GetDocumentation(member))
.FirstOrDefault(x => !string.IsNullOrWhiteSpace(x));
}
//and so on...
的HelpPageConfig註冊是一樣gurra777的答案,
config.SetDocumentationProvider(new MultiXmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/")));
正是我需要的。 – Levan
我不明白爲什麼這不是在默認版本。它比MS所做的更有意義。 –