我需要在WCF服务返回的类中实现一个接口。我该怎么做并保留服务返回的数据?
我试过这个:
public class ClientDerived: Client, ImyInteface
{
public string myInterfaceMethod()
{
return "MyInterface Implemented";
}
}
然后像这样使用它:
ClientDerived myClient= new ClientDerived();
myClient = (ClientDerived) myService.GetClient();
但是在将基类转换为派生类类型时,我遇到编译错误。所以我的问题仍然是:如何在wcf返回的类上实现一个新接口并保留他的数据?谢谢!
答案 0 :(得分:4)
您无法向下转发类以添加功能。它在C#中是不可能的。如果您拥有的只是通用Animal
,则无法将其归结为Cat
只是因为您希望它喵喵叫。
但是,您应该能够将接口添加到WCF框架为您自动生成的代理类,即将ImyInterface
直接添加到{{ 1}}。由于默认情况下自动生成的类为Client
,因此您只需扩展它们:
partial
注意:代理类通常位于项目命名空间的子名称空间中(例如public partial class Client : IMyInterface
{
public string myInterfaceMethod()
{
return "MyInterface Implemented";
}
}
),因此请确保将扩展名放在同一名称空间中。如果您不知道命名空间,请检查对象浏览器( Ctrl + Alt + J )。