Asp.net web api 如何在使用OWIN为WebApi 2生成的虚张声势文档中包含类和属性描述?

Asp.net web api 如何在使用OWIN为WebApi 2生成的虚张声势文档中包含类和属性描述?,asp.net-web-api,owin,swagger,swashbuckle,Asp.net Web Api,Owin,Swagger,Swashbuckle,在你想到它之前,是不一样的 我认为这应该是不言自明的。我想在Swagger文档中包含类描述。我的Swaggerconfig如下所示: config.EnableSwagger(c=> { c、 单一Api版本(“v1”,“我的Api名称”); c、 操作过滤器(); c、 includexmlcoments(getxmlcomentspath()); }).EnableSwaggerUi(c=>{}); 而MyAwesomeController看起来是这样的: // ///控制器说明(包含在S

在你想到它之前,是不一样的

我认为这应该是不言自明的。我想在Swagger文档中包含类描述。我的
Swagger
config如下所示:

config.EnableSwagger(c=>
{
c、 单一Api版本(“v1”,“我的Api名称”);
c、 操作过滤器();
c、 includexmlcoments(getxmlcomentspath());
}).EnableSwaggerUi(c=>{});
MyAwesomeController
看起来是这样的:

//
///控制器说明(包含在Swashback中)
/// 
公共类MyAwesomeController:ApicController
{
/// 
///方法说明(包含在Swashback中)
/// 
public IHttpActionResult Get()
{
返回Ok(“你好……来自另一边”);
}
公共IHttpActionResult帖子([FromBody]MyAwesomeModel模型)
{
返回Ok(“你好……来自另一边”);
}
}
我的
MyAwesomeModel
如下所示:

//
///**我希望将其包含在参数的夸张描述中**
/// 
公共类Myawesome模型
{
/// 
///**我希望将其包含在参数的夸张描述中**
/// 
公共字符串MyProperty{get;set;}
}

不雇用高级飞碟机,这可能吗?

如果您已填写以下声明

c.IncludeXmlComments(GetXmlCommentsPath());

您能检查xml注释路径方法是否返回项目xml文档文件所在的xml文件路径吗?

Hm。。。所以如果有人碰到这个

基本上,我发现了一种方法可以做到这一点,我意识到为什么它不是默认完成的。不确定这是否是最好的方法,但现在开始了

在我的解决方案中,POCO位于一个独立于实际API的项目中,因此不包括
MyAwesomeModel
的注释描述,因为没有为类和属性生成XML节点。因此,在poco所在的单独项目中,我修改了属性以生成XML

  • 为POCO所在的项目生成XML
  • 确保XML被复制到您想要查找它的路径。我在项目属性中使用了
    生成后事件命令行
    copy“$(SolutionDir)MyAwesomeProjectWithPocos\bin\MyAwesomeProjectWithPocos.xml”“$(ProjectDir)\bin\MyAwesomeProjectWithPocos.xml”

  • 修改
    SwaggerConfig
    以包括此XML
  • config.EnableSwagger(c=>
    {
    c、 单一Api版本(“v1”,“我的Api名称”);
    c、 操作过滤器


    当然,不需要复制XML文件,只需在步骤#3
    GetXmlCommentsPathForModels();
    中指向正确的位置,但这是我的选择。

    XML文件存在,并且生成的默认注释(控制器和方法文档)没有问题,但这不是我想要的-我还想包括用作方法输入参数的类的类定义中的注释。我不知道如何解释它。最好在他们的Github网站上发布您的请求/问题-对我来说,它不会在我的模型上加载属性的
    ,除非它是一个类似
    int
    bool
    string
    ,等等。您遇到过这个问题吗?老实说,不记得了,这是在2016年。
    config.EnableSwagger(c =>
    {
        c.SingleApiVersion("v1", "My Api Name");
        c.OperationFilter<AddAuthorizationHeaderParameterOperationFilter>();
        c.IncludeXmlComments(GetXmlCommentsPath());
        c.IncludeXmlComments(GetXmlCommentsPathForModels());
    
    }).EnableSwaggerUi(c => { });