重命名WebAPI中的泛型类

本文关键字:泛型类 WebAPI 重命名 | 更新日期: 2023-09-27 18:01:58

我有一个通用信封类,我使用它作为WebAPI的公共返回对象,如下所示:

 public class ApiEnvelope<T>
 {
     public bool Success { get; set; }
     public Error Error { get; set; }
     public Data<T> Data { get; set; }
 }

然后我构造一个HttpResponseMessage使用:

 Request.CreateResponse<ApiEnvelope<whatever>>(HttpStatusCude.OK, model);

我遇到的问题是,我希望xml有点标准,但返回的xml的根名称不标准,并通过apienveleofwhatever。

我的问题是我怎么能得到根名称是ApiEnvelope不管类型?

重命名WebAPI中的泛型类

对于泛型类,您没有机会,删除泛型规范并将数据属性类型设置为对象。

我有一个类似的问题,我得到了一个体面的答案,(我知道这是旧的,但这是一个很好的答案):如何解决Swashbuckle/Swagger -UI模型命名问题泛型?

现在这只是你问题的解决方案的一部分,所以你应该看看Github的repo: MakeGenericAgain。用它来"再生"。结果生成的代码,(注意:如果你在整个代码中使用这个,而不仅仅是类型的名称,如果你有属性名称,如& # NumberOfUnits"因为它变成了&;number &;)。

旁注:
如果你想"升级"你在这里的技能,然后使用Rolsyn的SyntaxWalker应用重命名,同时"清理"。复制类,因为许多人在设计rest - api时很少使用共享的"模型";所以用户和公司可能有相同的"地址"。-属性基于相同形状的类,但如果它们被定义两次,你的NSwag生成的代码将有Address和Address2,然而使用Roslyn,你可以识别这些并重写代码以给出一个"完美的结果"。