在C#分层应用程序中,接口应该放在哪里

在C#分层应用程序中,接口应该放在哪里,c#,dependency-injection,interface,C#,Dependency Injection,Interface,我正在构建一个C#WPF应用程序,它将首先使用IBMiSeries数据,但稍后将通过web服务使用oracle数据。为了在它们之间切换(并支持测试),我们创建接口并将视图编程到接口,对吗?每个数据源将负责映射到视图模型中使用的公共DTO结构。 那么,如果实现接口的这两个数据源位于不同的项目中,那么接口在哪里定义?我正在考虑如何定义接口,这样我就不必在各自的数据源项目中保持不同的版本。如果我在视图中创建接口,那么它将创建循环引用、需要接口视图的数据源和需要依赖注入数据源的视图。 请原谅我这个相当笼

我正在构建一个C#WPF应用程序,它将首先使用IBMiSeries数据,但稍后将通过web服务使用oracle数据。为了在它们之间切换(并支持测试),我们创建接口并将视图编程到接口,对吗?每个数据源将负责映射到视图模型中使用的公共DTO结构。 那么,如果实现接口的这两个数据源位于不同的项目中,那么接口在哪里定义?我正在考虑如何定义接口,这样我就不必在各自的数据源项目中保持不同的版本。如果我在视图中创建接口,那么它将创建循环引用、需要接口视图的数据源和需要依赖注入数据源的视图。 请原谅我这个相当笼统的问题。我不是问“我如何构建我的应用程序”,而是问我如何解决接口机制的具体问题


谢谢,迈克把它们放在一个单独的项目里。在您希望使用该项目的任何位置添加对该项目的引用