Swashbuckle将数据类型显示为外部库

时间:2016-09-02 12:13:55

标签: c# swashbuckle

我有一个带有Web API 2控制器的Web项目,我向它添加了Swashbuckle nuget包。当我访问swagger UI时,它会正确显示我的控制器操作。

Web API控制器示例:

public class StatusEventController: ApiController
{
    [HttpPost]
    [ApiKeyAuthentication]
    [Route("api/v1/statusevent/reportstatus/{locale}")]
    public ReportStatusResponse ReportStatus(string locale, [FromBody]StatusType status)
    {
        ReportStatusResponse response = new ReportStatusResponse();
        try
        {
            // Business logic here...
            response.Success = true;
        }
        catch (Exception ex)
        {
            Status.ResponseMessage message = new Status.ResponseMessage();
            message.Code = "EX";
            message.Message = ex.Message;
            response.Messages.Add(message);
        }
        return response;
    }
}

我的一些控制器方法使用在另一个(包含)库中定义的参数,并且这些类型 all 显示为数据类型" string"。正确显示Web项目本身中定义的类型参数。 Web API中使用的所有类型都是简单的POCO对象。

POCO:s看起来像这样:

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.1433")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://services.info/status/Status", TypeName="ReportStatusResponse")]
[System.ComponentModel.TypeConverterAttribute(typeof(System.ComponentModel.ExpandableObjectConverter))]
public partial class ReportStatusResponse
{
    protected bool m_Success = false;
    protected List<ResponseMessage> m_Messages = new List<ResponseMessage>();
    public bool Success
    {
        get { return m_Success; }
        set { m_Success = value; }
    }

    public List<ResponseMessage> Messages
    {
        get { return m_Messages; }
    }
}

我使用Web API项目和外部库创建了一个测试项目,并且该项目按预期工作,因此我无法在项目之外重现该问题。

如何解决/解决此问题?

0 个答案:

没有答案