2013-04-16 192 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)」的一些提示。 –