asp.net 2.0 asmx WebService在JSON Response中排除__type

Joe*_*tch 3 asp.net json web-services asp.net-ajax

我试图确定如何__type从我的JSON响应中排除asmx WebService.

我返回的类构造如下.

public class MyClassName
{
    private string _item1 = string.Empty;
    private string _item2 = string.Empty;

    public string item1 = { get { return _item1; } set { _item1 = value; } }
    public string item2 = { get { return _item2; } set { _item2 = value; } }
}

public class MyClassName_List : List<MyClassName>
{
    public MyClassName_List() {}
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个数据访问层和业务逻辑层,它返回一个填充的实例MyClassName_List.我的WebMethod设置如下.

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class MyClassName_WebService : System.Web.Services.WebService
{
    [WebMethod]
    public MyClassName_List GetList()
    {
        return MyClassName_List_BusinessLogicLayer.GetList();
    }
}
Run Code Online (Sandbox Code Playgroud)

JSON对象返回的结构如下.

[
    {
    item1: "item1-1 text",
    item2: "item1-2 text",
    __type: "NamespaceUsed.MyClassName"
    },
    {
    item1: "item2-1 text",
    item2: "item2-2 text",
    __type: "NamespaceUsed.MyClassName"
    },
]
Run Code Online (Sandbox Code Playgroud)

我只想返回JSON对象,如下所示.

[
    {
    item1: "item1-1 text",
    item2: "item1-2 text"
    },
    {
    item1: "item2-1 text",
    item2: "item2-2 text"
    }
]
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这里的建议,但我似乎无法正确实施.对此有任何帮助非常感谢!

Joe*_*tch 8

这样做的方法如下.

public class MyClassName
{
    private string _item1 = string.Empty;
    private string _item2 = string.Empty;

    public string item1 = { get { return _item1; } set { _item1 = value; } }
    public string item2 = { get { return _item2; } set { _item2 = value; } }

    protected internal MyClassName() { } //add a protected internal constructor to remove the returned __type attribute in the JSON response
}

public class MyClassName_List : List<MyClassName>
{
    public MyClassName_List() {}
}
Run Code Online (Sandbox Code Playgroud)

我希望这对其他人也有帮助!