Я написал класс с именем 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 () для него?
UPDATE
Полагаю, мне нужно уточнить, что это упрощенный пример. У меня есть сложные типы, которые будут использовать этот класс:
public class User {
public EncryptedValue UserId { get; set }
public string UserName { get; set }
}
И я буду выписывать список пользователей:
IList<User> users = GetUsers();
return Json(users);