0
我有幾個公共靜態WebMethods,我通常通過jQuery使用Javascript(直接)訪問。這是有效的,我對結果感到滿意(並且不需要處理AJAX框架)。在ASP中自定義對象序列化?
我希望能夠做的是定義我自己的模擬JSON對象在JS和ASP之間傳遞(這是一個.NET 2.0 Web項目,CS和VB,我也引用了3.5當我需要3.5服務的非web項目)。但我有很多問題:
- 我不能指定一個[DataContract],它告訴我我可能會丟失一個程序集。
- 我不知道如何使用ISerializable接口,也不知道它是否能解決我的問題。特別是,當我使用JavaScriptSerializer時,通過GetObjectData添加東西似乎並沒有深入;我總是得到「{}」。
- 用[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,所以請原諒我,如果我失去了一些東西非常明顯,這就是爲什麼我無法找到任何東西在線^^;
所以,我明確表示的問題是:我怎樣才能讓我自己的類可以在WebMethods的ASP中序列化?
沒有,沒有。摸索一下後,看起來它比我的目標更大/更復雜(一個更好/簡化的JSON對象,尤其是.net 2沒有)。除非它看起來更簡單?在任何情況下,ASP.NET 2都會執行JSON序列化,我只是不想在它們的格式和我的每一次調用(可能是數百)之間進行轉換,因爲它可以/應該直接完成。 – Groxx 2010-09-02 18:29:39
DataContractJsonSerializer怎麼樣? – CyberDude 2010-09-02 18:47:28
我在3.5項目中沒有System.Runtime.Serialization.Json ...我將如何得到它? – Groxx 2010-09-02 18:58:26