场景:
我使用的是ASP.NET MVC3和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()‘的定义。
问题:
Init()方法?注意:
以上是一个简化的场景。我的"base“接口包含了比Init()更多的定义。
发布于 2011-12-15 22:36:49
在继承链中,我做了许多愚蠢的事情,太多太愚蠢,无法在这里详细说明。有效的一点是它是有效的,错误的是链。
当我在MSDN上查找时,没有这种简单技术的简单示例来支持我的理解,更不用说任何这种通过接口使用继承的实际文档了。
https://stackoverflow.com/questions/8521385
复制相似问题