我搜遍了互联网,几本书,甚至咨询过一些同行。如果我试图做的事情是不好的做法,没有什么真正的说明。短小;我只是从客户那里做了一个让人难忘的事情。WCF服务实施
[ServiceContract]
public interface ICustomerInformation
{
[OperationContract(IsOneWay = true, IsTerminating = true, IsInitiating = false)]
ICustomerAccount GetCustomerDetails (string First);
}
[DataContract]
public interface ICustomerAccount
{
_firstName = firstName;
[DataMember]
string FirstName
{
get { return _firstName; }
set { _firstName = value; }
}
}
我最初的想法是类似于这个抽象的属性的实现;所以绑定到服务器的服务器和应用程序可以利用这些属性。但是,这真的是一件聪明的事情吗?甚至是好的做法?
我的假设是;通过将此层添加到服务中,它将允许访问该服务的用户界面简单地推送它的数据;同时允许功能直接与数据绑定。因此,如果用户数据发生变化,该服务将改变服务器上的功能。
这是一种糟糕的方式来查看?或尝试这个?我误解了这种解释吗?
就像我上面说过的那样;目标是一种逻辑抽象,其中多种类型的接口将其数据推送到服务。该服务然后接受输入;基于这些可变输入值执行功能。
如果我措辞不好,让我知道,所以我可以编辑;或者想一个更好的解释方法。任何援助将是伟大的。
更新:
我试图创建一个通用接口;那里的任何应用程序或客户端接口都会输入数据。一旦数据被提交给服务;服务器接受它。没有数据需要返回;但服务器只是通过使用客户端信息的命令来运行。
本质上,我试图通过服务来让数据通过服务器完成任务。客户端不需要知道它正在执行的任何服务器任务。
我的思考过程是通过服务在逻辑上分离UI /用户输入;那么该服务会使用从用户收集的信息来调用服务器端功能。
示例: 文本框(名称) - >服务 - >服务器将名称作为变量执行一系列任务:将名称写入数据库,按用户名命名文本文件等。
您是否可以更清楚地知道您要从哪里推送数据以及在哪里接收(并可能广播回)?另外,你是否试图做一些动态的事情,比如传递属性名称或类似的东西? – casperOne
我不认为你的代码会编译。你不能在界面中有字段。此外,当DataContractSerializer尝试反序列化您的合约并且无法确定类定义时,您可能会遇到运行时错误。你不应该使用接口作为DataContracts,只能使用类。 –
@JoshC。;例如,有一些方法可以将与接口相关的序列化问题作为DataContracts进行处理; http://msdn.microsoft.com/en-us/library/system.servicemodel.serviceknowntypeattribute.aspx –