1

以下のようなWebメソッドがあります。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 に答える