首页 > 解决方案 > 如果 C# 和 JavaScript 应用程序相互通信,则 DTO 的命名约定

问题描述

TypeScript 类实体的命名约定说我应该在 TypeScript 中使用 camelCase 作为属性名称。

就像:

export class Bird {
   type: string;
   nameOfBird: string;
}

但是 C# 中的命名约定说我应该在类属性前面加上 _:

public class Bird {
   public string _type {get; set;}
   public string _nameOfBird {get; set;}
}

但是当在我的应用程序之间以 JSON 格式发送它们时,我会遇到冲突,因为我不知道是否应该在我的 JSON 对象中使用 camelCase 或 _case。而且它似乎也使编组变得更加困难。

你怎么处理这个?只是忽略其中一项准则还是在两者之间进行编组?

标签: c#typescriptnaming-conventions

解决方案


您可以实现两者 - 只需使用序列化属性:

public class Bird {
    [JsonProperty("type")]
    public string _type {get; set;}
    [JsonProperty("nameOfBird")]
    public string _nameOfBird {get; set;}
}

甚至

[JsonProperty("type")]
public string AnyCompletelyDifferentName { get; set; }

除此之外,C# 中没有关于公共成员前缀的约定。但是,也许您的公司内部存在一个。


推荐阅读