2010-08-09 52 views
0

我有一個WCF服務。
它返回下面的類型。我在第一級獲取數據,但沒有嵌套列表中的任何數據......可能是我的問題?無法在Silverlight中返回此類型的異步WCF服務調用

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace slCF2.Web 
{ 
    public class Customer 
    { 
     string _firstname; 
     string _lastname;    
     List<BO> _bos; 
     List<AO> _aos; 



     public string FirstName 
     { 
      get { return _firstname; } 
      set { _firstname = value; } 
     } 

     public string LastName 
     { 
      get { return _lastname; } 
      set { _lastname = value; } 
     } 

     public System.Collections.Generic.List<AvailableOption> AvailableOptions 
     { 
      get { return _availableoptions; } 
      set { _availableoptions = value; } 
     } 

     public System.Collections.Generic.List<BuiltOption> BuiltOptions 
     { 
      get { return _builtoptions; } 
      set { _builtoptions = value; } 
     } 

    } 
    [Serializable] 
    public class AO 
    { 
     string _code; 

     public string Code 
     { 
      get { return _code; } 
      set { _code = value; } 
     } 

    } 
    [Serializable] 
    public class BO 
    { 
     string _code; 

     public string Code 
     { 
      get { return _code; } 
      set { _code = value; } 
     } 

    } 
} 

回答

0

我會把所有你想要在WCF消息包括性能上的類[DataContract]屬性和[DataMember]

[DataContract] 
public class Customer 
{ 
    string _firstname; 
    string _lastname;    
    List<BO> _bos; 
    List<AO> _aos; 

    [DataMember] 
    public string FirstName 
    { 
     get { return _firstname; } 
     set { _firstname = value; } 
    } 

    [DataMember] 
    public string LastName 
    { 
     get { return _lastname; } 
     set { _lastname = value; } 
    } 

    [DataMember] 
    public System.Collections.Generic.List<AvailableOption> AvailableOptions 
    { 
     get { return _availableoptions; } 
     set { _availableoptions = value; } 
    } 

    [DataMember] 
    public System.Collections.Generic.List<BuiltOption> BuiltOptions 
    { 
     get { return _builtoptions; } 
     set { _builtoptions = value; } 
    } 
} 

[DataContract] 
public class AO 
{ 
    string _code; 

    [DataMember] 
    public string Code 
    { 
     get { return _code; } 
     set { _code = value; } 
    } 
} 

[DataContract] 
public class BO 
{ 
    string _code; 

    [DataMember] 
    public string Code 
    { 
     get { return _code; } 
     set { _code = value; } 
    } 
} 

隨着WCF在.NET 3.5 SP1這不再是一個必須具備的條件,但爲了清晰和明確在我的意圖,我仍然把那些反正。您需要裝飾所有類和它們的性能,並與 - 甚至嵌套和子類等

此外,[Serializable]屬性使用並沒有真正有什麼用WCF消息序列化。 WCF使用[DataContract]/[DataMember]屬性或XmlSerializer(可選;在沒有[Serializable]屬性的情況下工作)使用數據協定序列化程序(默認情況下)。