2013-05-08 74 views
0

正在执行客户端服务器应用程序。服务器部分使用WCF服务实现。 WCF服务通过服务契约公开数据类型。客户端模块化并使用MEF进行DI。在客户端中,我有一个引用WCF服务的基础结构模块。基础结构模块知道WCF数据类型。我的问题是,是否有可能让引用基础结构的其他模块知道这些数据类型,而不在每个模块中添加对WCF服务的引用。有没有什么公开的WCF数据类型的方法将WCF数据类型暴露给外部模块

回答

0

通常,你有一个合同的DLL。这个契约DLL包含服务接口和所有相关类。然后,您的WCF服务和任何客户端组件将引用此合约程序集。由于合约程序集只包含接口和POCO(普通的旧CLR对象,只有数据,而不是方法或逻辑),它几乎可以在任何地方被引用,而不会泄露任何关于基础结构的信息。

+0

感谢您的回答,尝试过它,但我在实体框架中投入巨大,它似乎不允许映射接口。好吧,也许它回到传递的通用数据集,再次 – klashagelqvist 2013-05-08 13:08:10

0

nvoights answere在这里可能是正确的,但它也值得一提的是,如果你控制服务器和客户端,那么你可以如果你想把共同的对象放在一个dll所消耗的dll中,并忽略WCF生成类型。在一些能够比管理服务器类型和WCF生成的等效类型更好的方案中更好。