从基接口继承的接口

本文关键字:接口 继承 | 更新日期: 2023-09-27 18:17:53

>场景:

我正在使用 ASP.NET MVC 3和C#。 我有很多服务都有一个 Init(( 方法。

所以,我想,继承是我最好的新朋友。我尝试从其他接口继承接口。

但是,我遇到了问题。

我做了什么:

据我了解,一个接口可以从另一个接口继承。 即,您可以这样做:

public interface ICaseService : IBaseService
{
    CaseViewModel ViewModel { get; }
    Case Case { get; set; }
}

哪里:

public interface IBaseService
{
    void Init();
}

因此,当我从ICaseService派生CaseService时,我将不得不实现Init()方法以及Case属性和ViewModel属性。

问题:

假设我现在有一个引用 ICaseService 的控制器:

private readonly ICaseService service;

在我的行动中,我认为我应该能够做到:

public virtual ActionResult MyAction()
{
    service.Init();
}

但是我收到一条错误消息,指出ICaseService"不包含"Init()的定义。

问题:

  1. 为什么?

  2. 我是否必须忘记从接口继承接口,而只需在每个接口定义中键入Init()方法?

注意:

以上是一个简化的场景。 我的"基本"接口包含比 Init(( 更多的定义。

从基接口继承的接口

在继承链中,我做了许多愚蠢的事情,太多了,太愚蠢了,无法在这里详细介绍。有效的一点是它有效,问题是链条。

当我查找 MSDN 时,没有这种简单技术的简单示例来支持我的理解,更不用说这种使用接口继承的真实文档了。