我真的对 WCF 中的一种情况感到困惑。
我在 WCF 服务“SERVICE1”上有两个操作“OP1”和“OP2”。
有两个客户端使用服务“CLIENT1”和“CLIENT2”。
条件是“CLIENT1”只能调用“OP1”,而“CLIENT2”只能调用“OP2”。
我真的对 WCF 中的一种情况感到困惑。
我在 WCF 服务“SERVICE1”上有两个操作“OP1”和“OP2”。
有两个客户端使用服务“CLIENT1”和“CLIENT2”。
条件是“CLIENT1”只能调用“OP1”,而“CLIENT2”只能调用“OP2”。
重构您的服务契约以公开两个端点,其接口仅与使用它的客户端相关:
[ServiceContract]
public interface IService1
{
[OperationContract]
void OperationOne();
}
[ServiceContract]
public interface IService2
{
[OperationContract]
void OperationTwo();
}
public class MyServcie: IService1, IService2
{
//Implementation here...
}
这样,客户IService1
甚至都不知道方法IService2
存在。
这不仅限于 WCF - 这也是 OOP 中的好习惯......