在ScriptService中使用WCF服务时,在javascript中实例化DataContract

时间:2008-12-10 23:35:31

标签: javascript wcf

我有一个简单的WCF服务,我使用.svc公开。该服务具有一些与ServiceContracts一起使用的相关DataContract类。当调用获取某些数据的方法时,返回的json具有您所期望的所有属性。

我的问题是如何在javascript中获取其中一个DataContract对象的新实例。

<asp:ScriptManager ID="ScriptManager1" runat="server">
  <Services>
    <asp:ServiceReference 
      Path="./Service1.svc" />
  </Services>
</asp:ScriptManager>

<script>
// what I'd like to be able to do in javascript
var myInstance = new MyNamespace.MyDataContractClassName();
myInstance.someProperty = "Prop Value";
</script>

2 个答案:

答案 0 :(得分:1)

如果浏览到./Service1.svc/js,您可以看到服务器生成的确切客户端代理脚本。

在此文件的末尾,您应该看到将数据协定类型注册为客户端类型的行 - 这只是使它们在客户端类型系统中可用并允许您调用一个众所周知的构造函数,但它实际上并不代码它们的属性,因为您可以在JavaScript中的任何对象上设置任何属性。

您实际编写的代码是正确的,假设命名空间和类声明与代理代码中的代码匹配,但您可以自己验证。

答案 1 :(得分:0)

感谢@Sam,我希望有一种方法可以创建所有属性,这样当我做了新的MyDataContractClassname();我可以有一个很好的完整对象,我可以传递,不必测试属性的存在等 - 只是把它当作我从一个返回DataContract的服务得到的对象。如果说我有一个方法向用户显示该对象的内容,有时它显示一个新的,有时显示一个来自服务,那么假设所有属性都在那里就像你想的那样会很好实例化一个手写的“类”