如何在返回的类上实现接口并保留其数据?

时间:2014-05-07 14:11:48

标签: c# wcf

我需要在WCF服务返回的类中实现一个接口。我该怎么做并保留服务返回的数据?

我试过这个:

public class ClientDerived: Client, ImyInteface
{
  public string myInterfaceMethod()
  {
    return "MyInterface Implemented";
  }

}

然后像这样使用它:

ClientDerived myClient= new ClientDerived();
myClient = (ClientDerived) myService.GetClient();

但是在将基类转换为派生类类型时,我遇到编译错误。所以我的问题仍然是:如何在wcf返回的类上实现一个新接口并保留他的数据?谢谢!

1 个答案:

答案 0 :(得分:4)

您无法向下转发类以添加功能。它在C#中是不可能的。如果您拥有的只是通用Animal,则无法将其归结为Cat只是因为您希望它喵喵叫。

但是,您应该能够将接口添加到WCF框架为您自动生成的代理类,即将ImyInterface直接添加到{{ 1}}。由于默认情况下自动生成的类为Client,因此您只需扩展它们:

partial

注意:代理类通常位于项目命名空间的子名称空间中(例如public partial class Client : IMyInterface { public string myInterfaceMethod() { return "MyInterface Implemented"; } } ),因此请确保将扩展名放在同一名称空间中。如果您不知道命名空间,请检查对象浏览器 Ctrl + Alt + J )。