【问题标题】:Custom Business Object : AJAX Enabled WCF自定义业务对象:启用 AJAX 的 WCF
【发布时间】:2011-07-23 01:17:16
【问题描述】:

我可以在启用 AJAX 的 WCF 和我的 asp.net 页面之间传递自定义对象吗?

我在网上搜索但找不到任何示例。大多数显示简单类型,如字符串和整数。

我也不知道如何在客户端通过 JavaScript 填充自定义对象的属性。

我们有一个浏览器插件,我们必须从网络服务将数据传递给该插件,我研究过,看起来启用 AJAX 的 WCF 是可行的方法

使用 .net framework 3.5 和 VS 2008

【问题讨论】:

    标签: c# ajax wcf .net-3.5


    【解决方案1】:

    您不能传递实际的自定义对象,但您当然可以通过您的服务将它们的序列化版本传递给您的页面、javascript 等。基本上,您必须映射复杂的自定义 .NET 的字段类型到用 DataContract 属性修饰的类。这些类是您的服务将返回的类型。 DataContract 装饰的类将包含具有原始类型的字段,例如字符串、整数等。WCF 服务会将这些字段序列化为 XML 或 JSON。

    在客户端,jQuery 将是您最好的朋友。我个人更喜欢 JSON,因为这样更容易获得对象的属性,而不必处理解析一堆 XML。因此,设置您的服务以输出 JSON。

    此外,为了使您的服务 URL 更易于阅读,请确保使用 RESTful 方法。就像使用 WebGet 属性装饰您的服务方法并提供 UriTemplate 一样简单。一旦你看到一些例子,它会让你大吃一惊。注意:如果你遇到过带有 Method="GET" 的 WebInvoke,只需使用 WebGet 代替...它更紧凑...不需要方法规范。

    当我开发 WCF 服务和使用它的 ASP.NET 应用程序时,这篇特别的文章对我非常有用:http://www.c-sharpcorner.com/UploadFile/sridhar_subra/116/

    还有人和你问同样问题的人:http://social.msdn.microsoft.com/forums/en-US/wcf/thread/879d46af-9c78-4b5d-b746-82843d742a6f

    希望这会有所帮助! WCF 万岁!

    【讨论】:

    • 感谢 NoveJoe,所以我将使用 WCF 的 JSON 序列化并使用 ScriptManager 来使用它。
    • 酷!不太确定您是否可以直接使用 ScriptManager 使用它。 ScriptManager 听起来像:管理脚本。但是,我绝对推荐使用 jQuery 来使用它。当然,您可以使用 ScriptManager 加载您的 jQuery 脚本。
    【解决方案2】:

    使用 .NET 3.5,您最好的选择是 WebHttpBinding,它接受普通的旧 XML (POX),您需要将 XML 发送到 WCF 服务。

    您还可以通过 REST 入门工具包来使用 WCF REST。如需样品,请查看here。这也支持 JSON。

    如果您使用的是 .NET 4.0,那么启用 JSON 的 WCF HTTP 是不错的选择。带有 4.0 的 WCF REST 是一个替代方案,尽管我真的不喜欢它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多