Я использую ASP.NET MVC 3 и C #. У меня много сервисов, у всех есть метод Init ().
Итак, подумал я, наследство - мой новый лучший друг. Я пробовал унаследовать интерфейсы от других интерфейсов.
Однако у меня возникают проблемы.
Насколько я понимаю, один интерфейс может наследовать от другого интерфейса. то есть вы можете сделать это:
public interface ICaseService : IBaseService
{
CaseViewModel ViewModel { get; }
Case Case { get; set; }
}
Где:
public interface IBaseService
{
void Init();
}
Итак, когда я получаю CaseService от ICaseService, мне придется реализовать метод Init ()
, а также свойство Case
и свойство ViewModel
.
Допустим, у меня теперь есть контроллер, который ссылается на ICaseService:
private readonly ICaseService service;
В своих действиях, я думаю, я смогу сделать:
public virtual ActionResult MyAction()
{
service.Init();
}
Но я получаю сообщение об ошибке, в котором говорится, что ICaseService
'не содержит определения для' Init ()
.
Почему?
Должен ли я забыть о наследовании интерфейсов от интерфейсов и просто вводить в каждое определение интерфейса метод Init ()
?
] Выше приведен упрощенный сценарий. Мой «базовый» интерфейс содержит гораздо больше определений, чем просто Init ().