.net - 类中属性的命名约定
问题描述
我正在访问一个远程服务,该服务使用 NameSpace 等以 XML 格式返回数据。当我获得 WSDL(其中还包括响应定义)时,我发现我不喜欢属性名称。
例如,如何保留原始属性名称?
Partial Public Class ADDR_VAL_RESP
Inherits LSR_INQUIRY_RESP_Type
Private rESP_STATUS_GRPField() As RESP_STATUS_GRP
Private itemField As Object
'''<remarks/>
<System.Xml.Serialization.XmlElementAttribute("RESP_STATUS_GRP")>
Public Property RESP_STATUS_GRP() As RESP_STATUS_GRP()
Get
Return Me.rESP_STATUS_GRPField
End Get
Set
Me.rESP_STATUS_GRPField = Value
End Set
End Property
在上述情况下,它采用 RESP_STATUS_GRP 并将其返回,rESP_STATUS_GRPField
但我宁愿保留原始名称,因为它更清晰。
另外,如何在返回它们之前删除所有为 null 的属性,因为某些类可能有 20 多个属性但只有 4 个左右有值?它不仅更清洁,而且还节省了流量,因为返回会更小。
解决方案
保留远程系统的名称。有多种方法可以使用不同的名称,但您将通过修改 WSDL 生成的 C# 类来设置维护问题。
充其量,创建一个具有 WSDL 服务返回类型的数据对象的类,并使用您自己的命名方案。
两种情况:
- 如果 WSDL 服务更改了在整个应用程序中使用的名称怎么办?
- 如果 WSDL 数据以完全不同的格式出现怎么办?当我们的会计系统使用 WSDL 并且公司合并导致我们与被收购公司的另一个会计系统集成时看到了这一点。被收购公司的会计系统具有不同的数据格式。
我们最终将被收购公司的数据格式转换为另一个帐户系统使用的格式。
简短回答:将您的系统与外部系统中的名称、结构和故障隔离开来。
推荐阅读
- python - 从字符串到日期的数据框索引
- c++ - 如何实现一个模棱两可的纯虚方法
- java - 使用 onesignal 推送通知服务时,远程主机在握手期间关闭连接
- wpf - 删除 TextBox NoWrap 最大长度
- python-3.x - 将字典中的数据粘贴到 Excel 文件中
- ios - MKMarkerAnnotationView 字形图像不显示
- java - 基于自定义属性将用户定义的数据类型添加到 Java 集?
- react-native - React Native 0.56 在启动时崩溃
- github - 合并到分支后如何触发转换
- sqlite - Elastic Beanstalk - SQLite 数据库