【问题标题】:Why do we need serialization in web service为什么我们需要在 Web 服务中进行序列化
【发布时间】:2011-03-05 01:30:15
【问题描述】:

我有一个网络服务:

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.

现在我的问题是在返回自定义类型时是否需要序列化我的网络方法?我们什么时候应该序列化?有没有必要,如果有,条件是什么?

【问题讨论】:

    标签: asp.net web-services xml-serialization


    【解决方案1】:

    不,您不必这样做。执行引擎会注意到您返回自定义类型并将其正确序列化为 SOAP (!= XML)。

    PS:考虑迁移到 WCF

    【讨论】:

    • 是的,我也在学习 wcf。所以当我们需要序列化的时候,你能解释一下吗?
    • @Cloud2010:如果我们不需要 Web 服务/WCF,引擎会为我们完成。当我们想以某种自定义方式存储或传输对象时,需要序列化。例如,如果我们想将对象保存到文件中。
    • 引擎?你在说 ASP.net 引擎吗
    • @Cloud2010:是的,关于它。在 WCF 的情况下,您必须使用 DataContracts 它更明确,但实际的序列化仍然由 WCF 引擎完成。
    猜你喜欢
    • 2010-11-24
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    相关资源
    最近更新 更多