Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ServiceStack V4 API文档缺少响应类型(列表中)_C#_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack - Fatal编程技术网 servicestack,C#,servicestack" /> servicestack,C#,servicestack" />

C# ServiceStack V4 API文档缺少响应类型(列表中)

C# ServiceStack V4 API文档缺少响应类型(列表中),c#,servicestack,C#,servicestack,我们正在尝试从Swagger转换为使用SSV4的本机元数据功能。但在这样做的过程中,api的生成出现了一些问题: 问题似乎出现在内部SS操作BaseMataHandler.GetMetadataTypesProperty(…)中,它似乎无法检测列表中的复杂类型(并将它们与操作关联)。例如,此请求/响应dto将不显示“ComplexType”的文档: [Route(“/example”,“GET”)] [数据合同] 公共类示例:IReturn { [ApiMember(IsRequired=t

我们正在尝试从Swagger转换为使用SSV4的本机元数据功能。但在这样做的过程中,api的生成出现了一些问题:

问题似乎出现在内部SS操作BaseMataHandler.GetMetadataTypesProperty(…)中,它似乎无法检测列表中的复杂类型(并将它们与操作关联)。例如,此请求/响应dto将不显示“ComplexType”的文档:

[Route(“/example”,“GET”)]
[数据合同]
公共类示例:IReturn
{  
[ApiMember(IsRequired=true)]
[数据成员(顺序=1,IsRequired=true)]
公共Guid示例Guid{get;set;}
}  
[数据合同]
公共类示例响应:IHasResponseStatus
{  
[数据成员(顺序=1,IsRequired=false)]
公共列表结果{get;set;}
[数据成员(顺序=2,IsRequired=false)]
公共响应status ResponseStatus{get;set;}
}
如果“ComplexType”是单数的(不在列表中),则该类型将正确记录在元数据页面中。我是否错误地配置了这些DTO?或者元数据引擎


先谢谢你。。。Jordan

我已经扩展了ServiceStack的元数据页面,以在泛型和数组集合中包含引用的类型


此更改可从ServiceStackv4.0.32+中获得,该版本现已推出。

在我们的实现中进行了测试,并按预期工作。非常感谢。。。让我一天都很愉快嗨@mythz-如果可能的话,我想和你重新讨论这个问题。。。正如之前所确认的,它对第一级通用阵列工作良好。。。但是,如果存在多个数组层,则元数据页不会显示该类的信息。在上面的示例中,考虑一个“复杂类型”类型,其中包含一个“复杂类型2”中的另一个通用列表。在这种情况下,ComplexType2将不会显示在元数据页面中。您所做的检查几乎需要是递归的或类似的东西?再次感谢,@jglassco请在:打开一个新的问题,并包括模型复制的问题。
[Route("/example", "GET")]  
    [DataContract]  
    public class Example : IReturn<Example Response>  
    {  
        [ApiMember(IsRequired = true)]  
        [DataMember(Order = 1, IsRequired = true)]  
        public Guid ExampleGuid { get; set; }  
    }  

    [DataContract]  
    public class ExampleResponse : IHasResponseStatus  
    {  
        [DataMember(Order = 1, IsRequired = false)]
        public List<ComplexType> Results{ get; set; }

        [DataMember(Order = 2, IsRequired = false)]
        public ResponseStatus ResponseStatus { get; set; }

    }