【发布时间】:2011-11-21 09:30:58
【问题描述】:
我是 WCF 新手;到目前为止,我的 WCF 项目引用了一个包含许多公共类的 DLL 库。
我创建了一个 .net 4.0 WCF 项目,其中包含一个简单的接口类和一个实现该接口的 .SVC 文件。我没有看到 app.config 的任何部分或我可以用来限制共享对象的任何其他内容。
如何限制 WCF 服务,以便 WCF 客户端只能使用某些公共类?还是不能这样做?
更新:在下面添加了我的意图。
我试图通过 WCF 服务公开一些函数 + 类以供某些客户端使用,但这些类存储在此 DLL 中。我不想共享 dll 中的所有类,而只想共享一个子集。
更新 2:问题已解决
我知道这听起来很愚蠢……但不知何故,问题就消失了。我不确定重启是否成功,但我不再遇到这些问题了。
但我确实了解了一些关于 WCF 的知识;某处的一些文章强调了一个好的做法是超越接口和 .SVC 设计,实际上使用不同的程序集来遵循关注点分离模式。
【问题讨论】:
-
客户端将消耗的唯一项目是操作以及您公开的任何数据合约或故障合约。我看不到客户端如何广泛访问底层 DLL,除非您对这些 DLL 中的每个方法都有操作。
-
我使用“C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\SvcUtil.exe”localhost/WcfService/Service.svc?wsdl /out:D:/Service.cs /config:app。配置生成cs文件,我也可以在这个文件中看到公共类。所以...有什么想法吗?
-
SvcUtil 生成一个代理供客户端使用 - 所以它必须是公开的。我不确定我是否完全理解您的担忧?
-
好吧,基本上我正在尝试公开一个 wcf 供某些客户端使用,但是该类存储在这个 dll 中,所以我不想共享 dll 中的所有类,但只有一个子集,所以我试图弄清楚如何做到这一点。
-
显示一些例子。您的描述确实不清楚。