C#交叉相关接口问题

时间:2018-04-30 20:18:31

标签: c# .net inheritance interface

我已经有两个已完成的类(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 :(得分:1)

您可以使接口通用:

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; }
}