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

在WCF服务中传递接口?

如何解决《在WCF服务中传递接口?》经验,为你挑选了2个好方法。

我正在尝试使用WCF服务,并且遇到了传递接口的问题.

这有效:

[ServiceContract]
public interface IHomeService
{
    [OperationContract]
    string GetString();
}

但这不是:

[ServiceContract]
public interface IHomeService
{
    [OperationContract]
    IDevice GetInterface();
}

当我尝试编译客户端时,它在GetInterface方法上失败.我得到一个异常,说它无法将Object转换为IDevice.

在客户端上,IHomeService类正确地使用字符串实现GetString,因为它是返回类型,但GetInterface具有返回类型的对象.为什么不是IDevice?



1> Brian Genisi..:

您需要告诉WCF序列化程序使用哪个类来序列化接口

[ServiceKnownType(typeof(ConcreteDeviceType)]



2> Frode Liller..:

谢谢,当我改变它时,它的工作原理如下:

[ServiceContract]
[ServiceKnownType(typeof(PhotoCamera))]
[ServiceKnownType(typeof(TemperatureSensor))]
[ServiceKnownType(typeof(DeviceBase))]
public interface IHomeService
{
    [OperationContract]
    IDevice GetInterface();
}

我也从这个网站得到了帮助:http://www.thoughtshapes.com/WCF/UsingInterfacesAsParameters.htm

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