【问题标题】:Custom object serialization in ASP?ASP 中的自定义对象序列化?
【发布时间】:2010-09-02 17:39:31
【问题描述】:

我有一些公共静态 WebMethods,我使用 Javascript(直接)访问,通常通过 jQuery。这行得通,我对结果很满意(而且不必处理 AJAX 框架)。

我想做的是定义我自己的 mock-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 中使我自己的类可序列化?

【问题讨论】:

    标签: asp.net serialization


    【解决方案1】:

    您是否考虑过创建 WCF 服务?它具有开箱即用的 json 序列化。

    【讨论】:

    • 没有,没有。在四处寻找之后,它看起来比我的目标要大得多/复杂得多(一个更好/简化的 JSON 对象,尤其是 .net 2 没有)。除非它比看起来更简单?在任何情况下,ASP.NET 2 也会进行 JSON 序列化,我宁愿不要在它们的格式之间进行转换,而我的每次调用(可能是数百个)都可以/应该直接进行。
    • DataContractJsonSerializer 怎么样?
    • 我在 3.5 项目中没有 System.Runtime.Serialization.Json ......我怎么能得到它?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    相关资源
    最近更新 更多