2010-09-02 4 views
0

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

То, что я хотел бы сделать, это определить мой собственный объект 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?

ответ

0

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

+0

Не было, нет. После того, как тыкаешь, похоже, что это значительно больше/сложнее, чем мои цели (лучший/упрощенный объект JSON, тем более, что .net 2 не имеет). Разве это проще, чем выглядит? В любом случае, ASP.NET 2 также выполняет сериализацию JSON, я бы просто не конвертировал между их форматами и моими для каждого отдельного вызова (возможно, сотни), когда он может/должен выполняться напрямую. – Groxx

+0

Что касается DataContractJsonSerializer? – CyberDude

+0

У меня нет System.Runtime.Serialization.Json в проекте 3.5 ... как я могу это получить? – Groxx

Смежные вопросы