【问题标题】:Instanciate proxy of WCF service referring to the same instanciating class引用同一个实例化类的 WCF 服务的实例化代理
【发布时间】:2013-01-09 04:29:14
【问题描述】:

我有一个实现一些审计方法的类 (AuditcClass.cs)。我还实现了一个使用 AuditcClass.dll 方法的 WCF 服务。

现在我还需要能够从 AuditcClass 中引用 WCF 服务。但是我不能简单地使用生成的代理来引用它,因为与命名空间有几个冲突。

作为第一种方法,我将代理封装在另一个命名空间中,解决了许多冲突,但仍然引入了新的与其他通用类(例如,Exceptions 命名空间)的冲突。

是否有一种方法可以在类中引用 Web 服务,即使该服务使用相同的类的方法和枚举?

【问题讨论】:

  • 我觉得你的设计不正确,因为它引入了一些循环依赖。这可以使用一些模式来解决,比如 IoC 或依赖注入。也许您可以多描述一下您的类,以及它们之间的依赖关系。
  • @Steve B:完全正确。场景:我提供了一个用于审计的 DLL。它调用存储过程将项目存储在数据库中。现在我们需要提供调用 WCF 服务的可能性,以便将项目间接存储到数据库中(通过服务)。服务本身引用 aufit DLL,因为它需要公开/执行相同的审计方法。我同意你的观点,有一种参考循环。

标签: c# visual-studio-2010 wcf-data-services wcf-client


【解决方案1】:

我能够通过使用svcutil 工具的参数/reference:<file path> 解决我的问题:

References types in the specified assembly. When generating clients, use this option to specify assemblies that might contain types that represent the metadata being imported.

这允许我从生成的代理中排除共享 dll 以避免引用冲突。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多