【问题标题】:When adding a web service reference, I can't get all properties of an object添加 Web 服务引用时,我无法获取对象的所有属性
【发布时间】:2019-04-11 18:14:30
【问题描述】:

我在 Visual Studio 2012 中将 VB.Net 用于一个带有我根本无法更改的 Web 服务的项目。问题是 VB 没有生成它应该生成的所有属性。

我添加了 Web 服务作为参考服务。根据 XSD,collectionRAEEDataType 类应包括属性,如接收者、referenceNumber、sigCode。但是,当我尝试访问它们时,其中两个没有显示:sigCode 和 responsabilitySystemData。

我已经联系了 Web 服务的支持电子邮件,他们告诉我,是的,在 Java 服务中,类是使用这些字段生成的:

public class CollectionRAEEDataType {
protected String sigCode;
protected RegisteredInfoDataType responsabilitySystemData;
...
}

但是在 Reference.vb 中我得到了这个:

Partial Public Class collectionRAEEDataType
        Inherits Object
        Implements System.ComponentModel.INotifyPropertyChanged

        Private itemField As Object

        Private receiverField As receiverType

        Private referenceNumberField As String

        Private assignmentOfficeIdField As String

        '''<remarks/>
        <System.Xml.Serialization.XmlElementAttribute("responsabilitySystemData", GetType(registeredInfoDataType), Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, Order:=0),  _
         System.Xml.Serialization.XmlElementAttribute("sigCode", GetType(collectionRAEEDataTypeSigCode), Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, Order:=0)>  _
        Public Property Item() As Object
            Get
                Return Me.itemField
            End Get
            Set
                Me.itemField = value
                Me.RaisePropertyChanged("Item")
            End Set
        End Property

        '''<remarks/>
        <System.Xml.Serialization.XmlAttributeAttribute()>  _
        Public Property receiver() As receiverType
            Get
                Return Me.receiverField
            End Get
            Set
                Me.receiverField = value
                Me.RaisePropertyChanged("receiver")
            End Set
        End Property
...

可以看到,属性receiver没问题,但是responsabilitySystemData和sigCode不是属性。

你知道我该如何解决这个问题吗?

非常感谢。

【问题讨论】:

  • 修饰符受保护的字符串 sigCode;
  • 如果他们让那个修饰符我将无法获得属性?

标签: vb.net web-services xsd


【解决方案1】:

我自己回答。我必须使用我想要的类型,registeredInfoDataType 或 collectionRAEEDataTypeSigCode 来实例化 Item 字段。

例如,

MyElement.Item = New registeredInfoDataType()

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    • 2013-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多