c# - 如果 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。而且它似乎也使编组变得更加困难。
你怎么处理这个?只是忽略其中一项准则还是在两者之间进行编组?
解决方案
您可以实现两者 - 只需使用序列化属性:
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# 中没有关于公共成员前缀的约定。但是,也许您的公司内部存在一个。
推荐阅读
- python - Django DateTimeField auto_now_add 属性不起作用
- python - 每 5 秒在 Tableau Server 上自动刷新 Tableau Live 仪表板
- jquery - Windows 7 上选择的库中未捕获的类型错误
- java - 对于长度 < 255 个字符且相对速度足够快的字符串,哪个是具有最小冲突的哈希函数?
- c - 如何在visual studio c 中打印■?
- javascript - IE 11 无法从 Angular 中的字节数组创建文件对象
- php - 通过 file_get_contents 发送帖子数据,客户端/浏览器可读的帖子数据?
- email - 将密码直接发送到恢复电子邮件而不是密码重置链接
- java - Intellij 将多个 Java 类声明到一个文件中导致奇怪的 UI
- javascript - 如何在js中解构嵌套对象