您无法序列化成员asp asmx

时间:2016-07-14 07:16:14

标签: c# asp.net web-services

我在发送具有3个属性的对象时遇到问题,问题在于发送时客户数组我有以下错误对象:

您无法序列化成员。因为它是一个界面。

如果客户的财产运作良好。 我已尝试以各种方式消除错误,但似乎没有任何工作留下代码片段,以便他们可以给我他们的观点。非常感谢你

public class CustomersResponse
{
    public bool Success { get; set; }
    public string Error { get; set; }
    public customer[] ListCustomers { get; set; }
}

和ws的代码是

/// <summary>
/// 
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
// [System.Web.Script.Services.ScriptService]
public class wsCustomers : System.Web.Services.WebService
{
    [WebMethod]
    public CustomersResponse CustomersResult()
    {
        CustomersResponse customers = new CustomersResponse ();
        try
        {
            using (var context = new DataContext())
            {
                customers.Success = true;
                customers .Error = string.Empty;
            }
        }
        catch (Exception ex)
        {
            customers .Success = false;
            customers .Error = ex.Message.ToString();
        }

        return customers ;
    }
}

如果我删除属性ListCustomers ws运行良好,如果我把标记错误:(

2 个答案:

答案 0 :(得分:0)

您需要在客户类之前放置[Serializable]元标记。

[Serializable]
public class customer
{

// ...

}

答案 1 :(得分:0)

我已经可以解决问题了。我的解决方案是我有一个名为customers EntityFramework的模型。另一个类是使用相同的属性客户创建的,并且在编译应用程序时会考虑做一些影响客户的事情,因此将该例外品牌化。