Пользовательский объект сериализации в ASP? - PullRequest
0 голосов
/ 02 сентября 2010

У меня есть несколько открытых статических WebMethods, к которым я обращаюсь через Javascript (напрямую), обычно через jQuery. Это работает, и я доволен результатами (и тем, что мне не нужно иметь дело с фреймворком AJAX).

Что я хотел бы сделать, так это определить свой собственный объект mock-JSON для передачи между JS и ASP (это веб-проект .NET 2.0, CS и VB, и я также ссылаюсь на 3.5 не веб-проект, когда мне нужно 3,5 услуги). Но у меня куча проблем:

  • Я не могу указать [DataContract], он говорит, что я могу пропустить сборку.
  • Я не могу понять, как использовать интерфейс ISerializable, и при этом я не знаю, решит ли он мою проблему или нет. В частности, добавление вещей через GetObjectData, похоже, не приводит к приседу, когда я использую JavaScriptSerializer; Я всегда получаю "{}".
  • Пометка моего класса [Serializable], похоже, ничего не делает.
  • Я не знаю, какие еще есть варианты.

Код:

[Serializable]
public class MyClass : ISerializable
{
    void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
    {
        info.AddValue("test", "contents");
    }
}

// in my ASP page
MyClass tmp = new MyClass();
JavaScriptSerializer s = new JavaScriptSerializer(); // System.Web.Script.Serialization.JavaScriptSerializer, to be specific.
s.Serialize(tmp) // "{}" whether here, or by returning a MyClass instance from my WebMethod function (as Object, MyClass, etc.)

Я довольно новичок в CS / VB и .NET, поэтому прости меня, если я упускаю что-то до боли очевидное, и поэтому я не могу найти что-нибудь в Интернете ^^;

Итак, мой прямо сформулированный вопрос: как я могу сделать свои собственные классы сериализуемыми в ASP с WebMethods?

1 Ответ

0 голосов
/ 02 сентября 2010

Вы рассматривали, возможно, создание службы WCF?Он имеет сериализацию json "из коробки".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...