2013-04-16 195 views
0

我想数据提供给它创建格式如下肥皂XML请求代理:创建Web服务请求

<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) 

的MusicCollection类如下:

<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.string为键入“ucizi.music.DataContracts.Song”。

我不能看到这个错误来自哪里,请some1请帮助我,并建议如何我可以纠正这一点。

+0

你究竟在哪里得到异常? (提示:这不是一个“错误”) –

+0

就行** ucizi1.SongCollection.Add(ucz)** – user2211448

回答

0

添加以下代码Songs.songUserKey = “TakeMeHome”

dim ucizi2 as songCollection 
ucizi2.Add(song) 
ucizi1.songcollection = ucizi2 

这样可以顺利排序问题。你们睁开了眼睛。

0

在线路

Songs.songUserKey = "TakeMeHome" 
dim ucz 
ucz = Songs.SongUserKey 
ucizi.SongCollection.Add(ucz) 

设置uczSongUserKey - 这是字符串。

然后,你把它添加到收藏SongCollection

Public Class SongCollection 
    Inherits System.Collections.Generic.List(Of ucizi.Music.DataContracts.Song) 
End Class 

其中,预计Song

+0

好吧我得到错误来自哪里,我试图添加歌曲到songcollection而不是添加ucz但我现在得到一个错误'对象引用未设置为对象的实例'。 – user2211448

+1

可能你需要在调用Add之前初始化ucizi1.SongCollection的集合 - 比如ucizi1.SongCollection = new List (); – evgenyl

+1

几乎所有的'NullReferenceException'都是一样的。请参阅“[什么是.NET中的NullReferenceException?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net)”的一些提示。 –