C # Кросс-зависимая проблема интерфейсов - PullRequest
0 голосов
/ 30 апреля 2018

У меня уже есть два завершенных класса (модели доменов EF) со связанными ссылками (один-ко-многим):

public class Foo : IFoo
{
    public virtual ICollection<Bar> Bars { get; set; }
}

public class Bar : IBar
{
    public virtual Foo Foo { get; set; }
}

Мне нужно использовать их через интерфейсы для реализации DI. Такая реализация интерфейса, очевидно, не работает:

public interface IFoo
{
    ICollection<IBar> Bars { get; set; }
}

public interface IBar
{
    IFoo Foo { get; set; }
}

Не могли бы вы, пожалуйста, дать совет, как это можно сделать?

1 Ответ

0 голосов
/ 30 апреля 2018

Вы можете сделать интерфейсы общими:

public class Foo : IFoo<Bar>
{
    public virtual ICollection<Bar> Bars { get; set; }
}

public class Bar : IBar<Foo>
{
    public virtual Foo Foo { get; set; }
}

public interface IFoo<T>
{
    ICollection<T> Bars { get; set; }
}

public interface IBar<T>
{
    T Foo { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...