EncryptedValueというクラスを作成しました。演算子とToStringを定義して、コードで通常の値(int、double、DateTime)として使用できるようにしました。私がやりたいのは、このオブジェクトに値を割り当て、それをページに返送されるJSONに含めることです。
これが私のクラスです:
public class EncryptedValue<T> {
public T Value { get; }
public string Encryted { get; }
/* Implementation Details */
}
これが私の行動です:
public JsonResult MyAction() {
EncryptedValue value = 5;
return Json(new { EncryptedValue: value });
}
これが私が作成したいJSONです:
{ "EncryptedValue":"TheEncryptedString" }
しかし、代わりに生成されるものは次のとおりです。
{ "EncryptedValue":{"Encrypted":"TheEncryptedString","Value":2}}
クラスにプロパティを設定しなくても、JSONは次のようになります。
{ "EncryptedValue":{} }
JavaScriptSerializerにクラスが単一の値であると思わせ、その上でToString()を呼び出す方法を知っている人はいますか?
アップデート
これは単純化された例であることを明確にする必要があると思います。このクラスを利用する複雑なタイプがあります。
public class User {
public EncryptedValue UserId { get; set }
public string UserName { get; set }
}
そして、私はユーザーのリストを書きます:
IList<User> users = GetUsers();
return Json(users);