簡體   English   中英

從基接口繼承的接口

[英]Interfaces that inherit from a base interface

場景:

我正在使用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時,沒有簡單的示例來說明這種簡單的技術來支持我的理解,更不用說任何關於這種繼承與接口的使用的真實文檔了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM