重命名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不管类型?
对于泛型类,您没有机会,删除泛型规范并将数据属性类型设置为对象。
我有一个类似的问题,我得到了一个体面的答案,(我知道这是旧的,但这是一个很好的答案):如何解决Swashbuckle/Swagger -UI模型命名问题泛型?
现在这只是你问题的解决方案的一部分,所以你应该看看Github的repo: MakeGenericAgain。用它来"再生"。结果生成的代码,(注意:如果你在整个代码中使用这个,而不仅仅是类型的名称,如果你有属性名称,如& # NumberOfUnits"因为它变成了&;number &;)。
旁注:
如果你想"升级"你在这里的技能,然后使用Rolsyn的SyntaxWalker应用重命名,同时"清理"。复制类,因为许多人在设计rest - api时很少使用共享的"模型";所以用户和公司可能有相同的"地址"。-属性基于相同形状的类,但如果它们被定义两次,你的NSwag生成的代码将有Address和Address2,然而使用Roslyn,你可以识别这些并重写代码以给出一个"完美的结果"。