我有一个像下面这样的网络方法。 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复制到它。
答案 0 :(得分: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;
}
希望有所帮助
已编辑 -
你可以做这样的事情
[WebMethod]
public MyClass GetCustomer() {
MyClass myClass = new MyClass() { key = "value", ... };
return new filteredClass() {filterKey = myClass.value};
}