1

我有一个像下面这样的网络方法。MyClass 是在代理类中定义的,因为它来自另一个外部 Web 服务。

[WebMethod]
     [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
     public MyClass GetCustomer() 
     {
       MyClass myClass = new MyClass();
       (populate myClass from another web service)

       return myClass;
     }

但是我不希望 MyClass 中的所有属性都返回给浏览器。如何排除某些属性?我正在尝试最小化 json 有效负载,并让它只包含浏览器需要的数据。我不想定义另一个极简类并将 MyClass 中的东西复制到它。

4

1 回答 1

2

只需用 ScriptIgnoreAttribute 装饰您不想用它序列化的任何属性。

using System;
using System.Web.Script.Serialization;

public class Group
{
    // The JavaScriptSerializer ignores this field.
    [ScriptIgnore]
    public string Comment;

    // The JavaScriptSerializer serializes this field. 
    public string GroupName;
}

你可以试试ScriptIgnoreAttribute

希望能帮助到你

已编辑 -

你可以做这样的事情

[WebMethod]

public MyClass GetCustomer() {
    MyClass myClass = new MyClass() { key = "value", ... };
    return new filteredClass() {filterKey = myClass.value};
}
于 2013-06-04T17:42:13.843 回答