当前位置:  开发笔记 > 编程语言 > 正文

WCF和接口继承 - 这是一件可怕的事吗?

如何解决《WCF和接口继承-这是一件可怕的事吗?》经验,为你挑选了1个好方法。

我的应用程序有2个"服务",假设一个是基本(整数)计算器,一个是浮点计算器.我将这些表达为接口,如下所示:

public interface IBasicCalculator
{
    int Add( int a, int b );
}

public interface IFloatingPointCalculator
{
    double Add( double a, double b );
}

我想通过WCF公开这些.不幸的是,WCF似乎与以下概念密切相关:您希望公开的每个可能的操作必须通过一个服务接口 - 您不能在服务之间共享会话,从客户端开始,因为您需要创建一个很麻烦每个单独的代理,似乎没有任何"子服务"等...

所以,我已经收集到了我需要提供一个"组合"界面(一个也可能称之为外观),如下所示:

[ServiceContract]
public interface ICalculatorService : IBasicCalculator, IFloatingPointCalculator
{
    [OperationContract(Name = "AddInt")]
    new int Add( int a, int b );

    [OperationContract(Name = "AddDouble")]
    new double Add( double a, double b );
}

如果我这样做,那么WCF会向客户端公开这两种方法,这些方法可以调用它们,而且它实际上都可以工作.

然而,像这样的"继承接口"似乎是笨拙的.特别是和.严格来说,一个方法表明隐藏了一个基本方法,我实际上并没有这样做.我可以省略,但后来我得到编译器警告,相当于"我想我隐藏了这个方法,你需要重命名它的方法或者把'新'放在它上面".new int Addnew double Addnewnew

所以,这是一个由两部分组成的问题:

    我是否正在将"将所有内容组合到一个界面"逻辑中,或者实际上是否有办法使用WCF公开"子服务"或"多个链接服务"?

    如果这是需要做的,有更好的方法吗?

谢谢!



1> Orion Edward..:

我刚刚确定你可以将多个端点(每个端点使用不同的接口)暴露给同一个服务,你仍然只需要在客户端上生成一个代理lib,它可以访问所有这些,这完全解决了我的问题.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有