c# - 在 WCF 服务中传递接口(interface)?

标签 c# .net wcf

我正在试验 WCF 服务,遇到了传递接口(interface)的问题。

这个有效:

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

但这不是:

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

当我尝试编译客户端时,它在 GetInterface 方法上失败了。我收到一个异常,指出它无法将 Object 转换为 IDevice。

在客户端,IHomeService 类使用字符串作为返回类型正确地实现了 GetString,但 GetInterface 的返回类型为对象。为什么不是 IDevice?

最佳答案

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

[ServiceKnownType(typeof(ConcreteDeviceType)]

关于c# - 在 WCF 服务中传递接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/310160/

相关文章:

c# - 我可以用 c# 提取 postgresql 存储过程元数据吗

c# - 看似相等的 float 变量不相等的例子

c# - 是否可以更改 Winforms 组合框以禁止在其中输入内容?

c# - ComboBox 向上/向下箭头键在项目重新填充后发出

.net - 在没有 CLR/.NET 的情况下使用 Visual Studio 创建表单应用程序

c# - 将 wav 转换为 mp3 - ASP.NET

javascript - 使用 ASP.NET WCF 服务 JSON 发布数据

c# - 为什么 Visual Studio 将我添加的 .cs 文件标记为 "ignored"?

.net - WCF服务共享存储

wcf - Widdle服务的POST方法在Fiddler中失败