从基接口继承的接口

awr*_*ley 23 c# inheritance interface asp.net-mvc-3

场景:

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

所以,我想,继承是我最好的朋友.我试图从其他接口继承接口.

但是,我遇到了问题.

我做了什么:

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

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

    Case Case { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

哪里:

public interface IBaseService
{
    void Init();
}
Run Code Online (Sandbox Code Playgroud)

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

问题:

可以说我现在有一个控制器,它引用了ICaseService:

private readonly ICaseService service;
Run Code Online (Sandbox Code Playgroud)

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

public virtual ActionResult MyAction()
{
    service.Init();
}
Run Code Online (Sandbox Code Playgroud)

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

问题:

  1. 为什么?

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

注意:

以上是简化的方案.我的"基础"接口包含的定义多于Init().

awr*_*ley 11

在继承链中,我做了许多愚蠢的事情,这里有太多太愚蠢的细节.有效的一点是它有效,链条出了什么问题.

当我查阅MSDN时,没有简单的示例来说明这种简单的技术来支持我的理解,更不用说任何关于这种继承与接口的使用的真实文档了.

  • 可悲的是,我在家工作,所以我的妻子会打电话给穿着白大褂的男人.这是在电脑上大喊大叫的一件事,另一件事是和橡皮鸭说话. (28认同)