Asp.net 创建Web服务请求
我想将数据提供给一个代理,该代理创建一个soap XML请求,格式如下:Asp.net 创建Web服务请求,asp.net,xml,vb.net,wcf,soap,Asp.net,Xml,Vb.net,Wcf,Soap,我想将数据提供给一个代理,该代理创建一个soap XML请求,格式如下: <dat:MusicCollection> <!--Zero or more repetitions:--> <dat:Song> <dat:songUserkey>TakemeHome</dat:songUserkey> </dat:Song> </d
<dat:MusicCollection>
<!--Zero or more repetitions:-->
<dat:Song>
<dat:songUserkey>TakemeHome</dat:songUserkey>
</dat:Song>
</dat:MusicCollection>
dim ucizi1 as SongRequest 'this is the request class in the proxy
dim Songs as Song = New Song
Songs.songUserKey = "TakeMeHome"
dim ucz
ucz = Songs.SongUserKey
ucizi1.SongCollection.Add(ucz)
音乐采集课程如下:
<System.Diagnostics.DebuggerStepThroughAttribute(), _
System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
System.Runtime.Serialization.CollectionDataContractAttribute(Name:="ProductCollection", [Namespace]:="http://ucizi.Musicservice/DataContracts", ItemName:="Song")> _
Public Class SongCollection
Inherits System.Collections.Generic.List(Of ucizi.Music.DataContracts.Song)
End Class
<System.Diagnostics.DebuggerStepThroughAttribute(), _
System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
System.Runtime.Serialization.DataContractAttribute(Name:="Product", [Namespace]:="http://Ucizi.Music/DataContracts")> _
Partial Public Class Product
Inherits Object
Implements System.Runtime.Serialization.IExtensibleDataObject
Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject
Private SongUserkeyField As String
Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData
Get
Return Me.extensionDataField
End Get
Set
Me.extensionDataField = value
End Set
End Property
<System.Runtime.Serialization.DataMemberAttribute(IsRequired:=true)> _
Public Property SongUserkey() As String
Get
Return Me.SongUserkeyField
End Get
Set
Me.SongUserkeyField = value
End Set
End Property
End Class
_
公营歌曲集
继承System.Collections.Generic.List(ucizi.Music.DataContracts.Song的)
末级
歌曲课程如下:
<System.Diagnostics.DebuggerStepThroughAttribute(), _
System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
System.Runtime.Serialization.CollectionDataContractAttribute(Name:="ProductCollection", [Namespace]:="http://ucizi.Musicservice/DataContracts", ItemName:="Song")> _
Public Class SongCollection
Inherits System.Collections.Generic.List(Of ucizi.Music.DataContracts.Song)
End Class
<System.Diagnostics.DebuggerStepThroughAttribute(), _
System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
System.Runtime.Serialization.DataContractAttribute(Name:="Product", [Namespace]:="http://Ucizi.Music/DataContracts")> _
Partial Public Class Product
Inherits Object
Implements System.Runtime.Serialization.IExtensibleDataObject
Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject
Private SongUserkeyField As String
Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData
Get
Return Me.extensionDataField
End Get
Set
Me.extensionDataField = value
End Set
End Property
<System.Runtime.Serialization.DataMemberAttribute(IsRequired:=true)> _
Public Property SongUserkey() As String
Get
Return Me.SongUserkeyField
End Get
Set
Me.SongUserkeyField = value
End Set
End Property
End Class
_
部分公共类产品
继承对象
实现System.Runtime.Serialization.IExtensibleDataObject
私有extensionDataField作为System.Runtime.Serialization.ExtensionDataObject
私有SongUserkeyField作为字符串
公共属性ExtensionData()作为System.Runtime.Serialization.ExtensionDataObject实现System.Runtime.Serialization.IExtensibleDataObject.ExtensionData
得到
Return Me.extensionDataField
结束
设置
Me.extensionDataField=值
端集
端属性
_
作为字符串的公共属性SongUserkey()
得到
Return Me.SongUserkeyField
结束
设置
Me.SongUserkeyField=值
端集
端属性
末级
然而,当我运行这段代码时,我得到一个错误:无法将类型为“system.string”的对象强制转换为类型为“ucizi.music.DataContracts.Song”
我看不出这个错误是从哪里来的,有人能帮我纠正一下吗
Songs.songUserKey = "TakeMeHome"
dim ucz
ucz = Songs.SongUserKey
ucizi.SongCollection.Add(ucz)
您将ucz
设置为SongUserKey
——这是字符串
然后,将其添加到collectionSongCollection
Public Class SongCollection
Inherits System.Collections.Generic.List(Of ucizi.Music.DataContracts.Song)
End Class
这是预期的
歌曲
在歌曲之后添加了以下代码。songUserKey=“TakeMeHome”
这使问题得以顺利解决。你们让我大开眼界。你们到底从哪里得到了例外?(提示:这不是一个“错误”)在ucizi1.SongCollection.Add(ucz)行上,我知道错误的来源,我尝试将歌曲添加到songcollection,而不是添加ucz,但我现在收到一个错误“对象引用未设置为对象的实例”。在调用add-like ucizi1.songcollection=new List()之前,可能需要初始化ucizi1.songcollection的集合;几乎所有
NullReferenceException
的情况都是相同的。请参阅“”,以获得一些提示。我已经对问题进行了排序,谢谢各位。@user2211448:您应该发布一个答案,说明您是如何“排序”的