首页 > 解决方案 > 类中属性的命名约定

问题描述

我正在访问一个远程服务,该服务使用 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 个左右有值?它不仅更清洁,而且还节省了流量,因为返回会更小。

标签: .netxmlvb.netwsdl

解决方案


保留远程系统的名称。有多种方法可以使用不同的名称,但您将通过修改 WSDL 生成的 C# 类来设置维护问题。

充其量,创建一个具有 WSDL 服务返回类型的数据对象的类,并使用您自己的命名方案。

两种情况:

  1. 如果 WSDL 服务更改了在整个应用程序中使用的名称怎么办?
  2. 如果 WSDL 数据以完全不同的格式出现怎么办?当我们的会计系统使用 WSDL 并且公司合并导致我们与被收购公司的另一个会计系统集成时看到了这一点。被收购公司的会计系统具有不同的数据格式。
    我们最终将被收购公司的数据格式转换为另一个帐户系统使用的格式。

简短回答:将您的系统与外部系统中的名称、结构和故障隔离开来。


推荐阅读