如何在C#中使用多个解决方案创建接口时避免循环引用?

时间:2014-02-25 14:07:41

标签: c# interface

我正在创建一个我希望在多个新解决方案中使用的界面。让我们调用接口IBar和新解决方案ProjectX

中的一个

IBar中,我定义了一个必须返回模型FooModel的方法。

模型Foo和接口类IBar存在于数据解决方案中。所以我将数据解决方案引用添加到SolutionX,我现在可以轻松实现接口( DataProject.Interfaces.IBar )并返回FooModel( DataProject.Models.FooModel )。

如何调用ProjectX中从数据层实现IBar接口的方法?

如果我尝试将ProjectX引用添加到数据层解决方案,我会收到循环引用错误。我是接口的新手,请原谅我的无知。

2 个答案:

答案 0 :(得分:2)

您不需要SolutionX中对DataProject的引用。您只需通过界面访问IBar隐藏的功能即可。因此,在DataProject中,您可能具有将IBar作为参数的功能。

void Foo(IBar bar) {...}

答案 1 :(得分:1)

您应该以不同方式进行设置,使IBar方法返回IFooModel个内容。

然后在单独的项目中定义IBarIFooModel

接口用于分解循环引用,当您发现创建循环时出现问题。