2010-06-17 54 views
3

我有一個Web服務:爲什麼我們需要序列化的Web服務

public class Product 
{ 
    public int ProductId { get; set; } 
    public string ProductName { get; set; } 
} 


public class Service : System.Web.Services.WebService 
{ 
    public Service() { 
     //Uncomment the following line if using designed components 
     //InitializeComponent(); 
    } 

    [WebMethod] 
    public List<Product> GetItems() 
    { 
     List<Product> productList = new List<Product>() 
     { 
      new Product{ProductId=1,ProductName="Pencil"}, 
      new Product{ProductId=2,ProductName="Pen"} 
     }; 

     return productList; 
    } 

,並在asp.net應用程序,我消費它想:

 localhost.Service s = new localhost.Service(); 
    List<localhost.Product> k = new List<localhost.Product>(); 
    k = s.GetItems().ToList(); // i am getting the values here. 

現在我的問題是,我需要序列化我的webmethod,因爲我返回自定義類型?我們應該什麼時候序列化?是否有必要,如果是的話,那麼條件是什麼?

回答

2

不,你不必這樣做。執行引擎會注意到您返回自定義類型並將其序列化爲SOAP(!= XML)。

PS:考慮搬到WCF

+0

是的,我也在學習wcf。 所以當我們需要序列化的時候,你能否解釋一下。 – Cloud2010 2010-06-17 16:37:19

+0

@ Cloud2010:在我們不需要Web Service/WCF的情況下,引擎會爲我們做這件事。當我們想要以某種自定義的方式存儲或傳輸對象時,需要序列化。例如,如果我們想將對象保存到文件。 – Andrey 2010-06-17 16:39:57

+0

發動機?你在談論ASP.net引擎 – Cloud2010 2010-06-17 16:42:41

相關問題