我编写了几个简单的Web方法(作为WCF服务的一部分),它使用了几个(更复杂的)类作为输入/返回参数。每个Web方法归因于[OperationContract],每个数据类归属于[DataContract],每个数据字段归类于[DataMethod]。 在客户端,我可以通过添加服务引用来调用这些Web方法。 一切都很好,但是当我在客户端创建上面的一些数据类的实例时,它们的构造函数不会运行。 因为初始化每个实例有点复杂,所以每次都认为有一些方法可以通过自己的构造函数在客户端初始化实例。 提前致谢! 伊兰。
答案 0 :(得分:1)
在服务中的数据协定(包括构造函数)上公开的方法仅适用于服务应用程序。添加服务引用将仅重新创建数据协定类的数据结构,因为服务描述无法描述逻辑,逻辑无法序列化。
使用服务引用创建的所有类都是部分的。您可以创建自己的分部类并添加自己的自定义构造函数,也可以share the assembly在服务和客户端之间签订数据合同(但它将共享添加到数据合同类中的所有逻辑,这通常是您所做的事情。我想)。共享程序集将紧密结合您的客户端和服务。