为什么 WCF 类需要接口继承,而普通类不需要

本文关键字:不需要 接口 WCF 为什么 继承 | 更新日期: 2023-09-27 18:34:28

这段代码适用于普通类:

public interface IServiceBase
{
    void BaseMethod();
}
public class ServiceBase : IServiceBase
{
    public void BaseMethod() { }
}
public interface ITestService // : IServiceBase - it doesn't reqiure
                              // in plain classes but in WCF it does.
{
    void TestMethod();
}
public class TestService : ServiceBase, ITestService
{
    public void TestMethod() { }
}
class Program
{
    static void Main(string[] args)
    {
        var ts = new TestService();
        ts.BaseMethod();
    }
}

但在 WCF 上下文中,客户端看不到 BaseMethod,直到您从 IServiceBase 继承 ITestService:

public interface ITestService : IServiceBase

为什么?

我以为

TestService : ServiceBase

已经包括

TestService : IServiceBase

在普通类中是这样,但在 WCF 中不是。

我的问题不是这个问题 接口继承和派生类

为什么 WCF 类需要接口继承,而普通类不需要

因为 WCF 基于自动实现代理(在客户端(并确定服务公开的协定(接口(,而实现可能并且通常在不同的项目中。为作业(描述接口(使用正确的工具(接口(的基本设计原则。