【发布时间】:2010-06-05 02:36:55
【问题描述】:
我有一个 WCF 服务,它公开了许多方法。
我的应用程序使用此服务,而 ServiceContract 仅包含一些方法的 OperationContract 定义。
要切入问题,请考虑以下代码示例:
[ServiceContract]
public interface IServer
{
[OperationContract]
void BasicOperation();
}
[ServiceContract]
public interface IExtendedServer : IServer
{
[OperationContract]
void ExtendedOperation();
}
我想签订合同,使应用程序具有扩展能力。换句话说,我希望能够在任何地方使用IServer合约,但允许类插件架构扩展基本合约接口,以便插件本身可以调用ExtendedOperation()操作合约。
那么,我该如何构建我的代码,或者,我必须进行哪些更改才能执行以下操作? (通道类型为 IServer)
((IExtendedServer)channel).ExtendedOperation()
当我尝试这样做时,我得到了错误
System.InvalidCastException:无法将透明代理转换为类型“Contract.IExtendedServer”。
希望我没有混淆...
【问题讨论】:
标签: c# interface wcf wcf-client