我可以在支持AJAX的WCF和我的asp.net页面之间传递自定义对象吗?
我在网上搜索但找不到任何示例。大多数显示简单类型,如字符串和整数。
我也不知道如何通过客户端的JavaScript填充自定义对象的属性。
我们有一个浏览器添加,我们必须从Web服务将数据传递到该插件,我研究并看起来像启用了AJAX的WCF
使用.net framework 3.5和VS 2008
答案 0 :(得分:0)
使用.NET 3.5,最好的选择是WebHttpBinding,它接受普通的旧XML(POX),您需要将XML发送到WCF服务。
您还可以使用REST入门工具包使用WCF REST。样品看看here。这也支持JSON。
如果您使用的是.NET 4.0,则启用JSON的WCF HTTP是可行的方法。使用4.0的WCF REST是另一种选择,尽管我真的不喜欢它。
答案 1 :(得分:0)
您无法传递实际的自定义对象,但您当然可以通过您的服务和页面,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万岁!