Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net WCF:与客户共享服务合同';s代理包装器_.net_Wcf - Fatal编程技术网

.net WCF:与客户共享服务合同';s代理包装器

.net WCF:与客户共享服务合同';s代理包装器,.net,wcf,.net,Wcf,我计划为我的WCF客户机创建包装器,它封装对WCF服务的调用 包装器将实例化代理(使用服务引用生成的类),处理服务返回的错误,并将它们转发回调用方。包装器还将从业务对象创建DTO,反之亦然 例如,当单击按钮时,登录的视图模型将调用登录包装器的“Login”方法。视图模型将用户名和密码传递给包装器,包装器将创建一个新的数据传输对象(DTO)。然后,包装器将在我的服务上调用“Login”服务契约,传入DTO,并将操作的结果返回给调用者(即:Login Successful/Failed) 因为我正在

我计划为我的WCF客户机创建包装器,它封装对WCF服务的调用

包装器将实例化代理(使用服务引用生成的类),处理服务返回的错误,并将它们转发回调用方。包装器还将从业务对象创建DTO,反之亦然

例如,当单击按钮时,登录的视图模型将调用登录包装器的“Login”方法。视图模型将用户名和密码传递给包装器,包装器将创建一个新的数据传输对象(DTO)。然后,包装器将在我的服务上调用“Login”服务契约,传入DTO,并将操作的结果返回给调用者(即:Login Successful/Failed)

因为我正在使用IoC容器(Unity)在视图模型中注入包装器,所以我需要为包装器创建一个接口

我突然想到,我将创建的接口可能会强制使用包装器将实现的方法

在这方面,定义包装器的项目是否应该引用定义服务契约的Web服务程序集

然后包装器将实现适当的服务契约。例如,UserManagementProxyWrapper类将实现在Web服务也使用的程序集中定义的IUserManagement服务契约


这是一个可以接受的方法吗?接口具有WCF属性(即:ServiceContracts/DataContract)这一事实是否对包装器的实现有任何影响?

如果您想要与WCF数据契约相同的输入/输出参数,这将是一个合适的解决方案。这些接口是用属性装饰的,这一事实不会有任何区别。

太好了,谢谢你的确认,这正是我想知道的。