【问题标题】:Interface Design(WCF/Remoting)界面设计(WCF/Remoting)
【发布时间】:2012-10-25 04:55:52
【问题描述】:

我有两个接口

public interface IServer1
{
[OperationContract(IsOneWay = false)]
void Subscribe();

[OperationContract(IsOneWay = false)]
[ServiceKnownType(typeof(ABC))]       
List<ABC> GetActiveData();
}

还有另一个界面

public interface IServer2
{
void Subscribe(IClient client);

List<ABC> GetActiveData(IClient client);
}

一个接口用于 WCF 通信,另一个用于远程处理。 为此创建两个接口让我很恼火。将有两个不同的代理来实现这些接口。

这可以只用一个界面来完成吗?或者最好有两个接口。 此外,未来可能还会出现除 WCF 和远程处理之外的其他进程间通信模式,因此也不想为此创建另一个接口。

至于删除远程处理和使用 WCF 仅作为其庞大的代码库无法做到这一点。不希望有额外的测试等工作。

谢谢

【问题讨论】:

    标签: c# wcf interface remoting


    【解决方案1】:

    我将遵循封装不同概念的建议。在您的情况下,服务接口似乎是一致的,但通信模式可能会改变。

    为客户端创建一个接口并通过工厂暴露接口。在 Factory 中,根据使用的通信模式,创建代理对象并将调用委托给代理对象。这也将封装服务接口,即服务接口可能是一个或可能不同,除非服务接口提供相同的操作,否则客户端不需要更改。引入新的通信模式只需要对Factory类进行单元测试,客户端代码不需要进行单元测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-21
      相关资源
      最近更新 更多