应该将类接口放在.NET类库中的哪个位置?

use*_*046 6 c# design-patterns interface

我很好奇开发人员的意见/实践,理想情况下,类接口应放在.NET类库中.它们是否应该包含在解决方案中的专用库中,例如MyCompany.AccountPackage.Interfaces?

他们应该拥有自己的命名空间,例如MyCompany.AccountPackage.MasterAccounts.Interfaces吗?

还有其他想法/意见吗?

是否有任何好的指南演示如何构建.Net库(甚至更好的解决方案),通常显示标准库中通常应该公开哪些类/接口.

感谢:D.

Ode*_*ded 8

简短回答:

接口应该接近它们的实现位置.

至少有一些BCL这样做 - 例如,IEnumerable<T>生活在System.Collections.Generic命名空间中.


答案稍长一点:

这取决于接口的用途.

是为第三方提供插件接口(a-la the provider model还是MEF)?

如果是这样,单独的程序集可能有意义,因此需要由第三方导入的所有内容都是此程序集.

它是内部的,用于测试和IoC目的吗?

我认为保持接近实现是有意义的,在组织上和帮助保持代码与接口同步.