我在Visual Studio 2012中使用VB.Net来创建一个我无法改变的Web服务项目。问题是VB不会生成它应该生成的所有属性。
我添加了Web服务作为参考服务。根据XSD,collectionRAEEDataType类应该包含receiver,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
...
如您所见,属性接收器没问题,但responsabilitySystemData和sigCode不是属性。
你知道我怎么能解决这个问题?
非常感谢。
我回答自己。我必须使用我想要的类型,registeredInfoDataType或collectionRAEEDataTypeSigCode来实例化Item字段。
例如,
MyElement.Item = New registeredInfoDataType()
谢谢。