2012-09-12 45 views
0

我使用下面的代碼,但它給錯誤SerializeObject和DeserializeObject

Service1.svc.cs

public static byte[] SerializeObject<T>(T obj) 
    { 
     using (MemoryStream ms = new MemoryStream()) 
     { 
      using (XmlDictionaryWriter writer = XmlDictionaryWriter.CreateBinaryWriter(ms)) 
      { 
       DataContractSerializer dcs = new DataContractSerializer(typeof(T)); 
       dcs.WriteObject(writer, obj); writer.Flush(); 
       return ms.ToArray(); 
      } 
     } 
    } 

客戶端代碼的Windows手機

public static T DeserializeObject<T>(byte[] xml) 
    { 
     using (MemoryStream memoryStream = new MemoryStream(xml)) 
     { 
      using (XmlDictionaryReader reader = XmlDictionaryReader.CreateBinaryReader(memoryStream, XmlDictionaryReaderQuotas.Max)) 
      { 
       DataContractSerializer dcs = new DataContractSerializer(typeof(T)); 
       return (T)dcs.ReadObject(reader); 
      } 
     } 
    } 

我把這個DeserializeObject從下面的代碼

void svc_Get_Conn(object send, GetConnCompletedEventArgs e) 
    { 
     CookieContainer con =DeserializeObject<CookieContainer>(e.Result); 
    } 

這給了以下錯誤

Message = "Type 'System.Net.PathList' with data contract name 'PathList:http://schemas.datacontract.org/2004/07/System.Net' is not expected. Consider using a DataContractResolver or add any types not known statically to the list of known types - for example, by using... 

如何解決這個問題?

回答

0

CookieContainer不能被序列化。檢查this解決方法

歡呼聲