意思是这个TB_Post类是在api中models定义的
Class1这个类是在类库中定义的
这俩个类都加了注释 TB_Post类的描述可以显示
Class1类的描述就显示不出来 如何才能让class1的描述也显示出来
webapi项目外部类库中的实体作为参数,实体的描述不显示。如何配置
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- Hi别闹 2017-01-23 09:48关注
1、对引用的外部类库右键,属性,在生成里面点击“XML文档文件”,定义好生成的XML文件路径和名称。例如:bin\Debug\Models.XML 这里我是 Models.xml
2、把类库的 XML 文件拷贝到 Web API 项目的 App_Data 文件夹下,并包含在项目中,这样就应该有两个XML文件。这里我是 Models.xml 和QCWebApi.XML
(1)关于配置QCWebApi.XML的生成路径。在WebApi项目上面点右键→属性→生成→输出中点击选中xml文档文件并在右边的输入框中配置生成xml的路径 例如:App_Data\QCWebApi.XML
3、在 Web API 项目中,修改(Areas/HelpPage/App_Start)HelpPageConfig.cs文件的Register方法 并在方法最后添加以下内容:(如果有,请修改)
config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data")));
添加后HelpPageConfig.cs文件的Register方法代码如下:
public static void Register(HttpConfiguration config)
{
config.SetSampleForMediaType(
new TextSample("Binary JSON content. See http://bsonspec.org for details."),
new MediaTypeHeaderValue("application/bson"));
config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data")));
}
4、修改(Areas/HelpPage)XmlDocumentationProvider.cs文件:
(1).把私有变量 _documentNavigator 替换为:private List _documentNavigators = new List();
(2).然后构造器修改为:
public XmlDocumentationProvider(string documentPath)
{
if (documentPath == null)
{
throw new ArgumentNullException("documentPath");
}
//XPathDocument xpath = new XPathDocument(documentPath);
//_documentNavigator = xpath.CreateNavigator();var files = new[] { "QCWebApi.XML", "Models.XML" }; foreach (var file in files) { XPathDocument xpath = new XPathDocument(Path.Combine(documentPath, file)); _documentNavigators.Add(xpath.CreateNavigator()); }
}
(3).在构造器后面添加一个方法:
private XPathNavigator SelectSingleNode(string selectExpression)
{
foreach (var navigator in _documentNavigators)
{
var propertyNode = navigator.SelectSingleNode(selectExpression);
if (propertyNode!=null)
{
return propertyNode;
}
}
return null;
}
(4).修复报错的地方(应该有三个地方报错),把 _documentNavigator.SelectSingleNode 替换为上面写的新方法: SelectSingleNode编译运行 Web API ,对于引用类库的类,已经有Description了(前提当然是这个类写了summary注释)。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报