我在我的申请中一直这样编码:
public class ContentController : ApiController
{
private IUow _uow;
private IContentService _contentService;
public ContentController(
IUow uow,
IContentService contentService)
{
_uow = uow;
_contentService = contentService;
}
然后:
container.RegisterType<IContentService, ContentService>();
我是从这种方式开始的,因为我一直在阅读如何使用接口来使事情变得可测试并使用像Unity之类的东西来轻松改变事物。
但是在一年或更长时间后,我仍然没有找到需要改变的东西,我可以用其他方式测试我的应用程序,而无需不同的服务。
对于小型应用程序(&lt; 20控制器),使用Unity之类的东西确实有任何优势。性能如何?它是否会改善任何事情或使问题复杂化。
答案 0 :(得分:1)
对于小型应用程序(&lt; 20控制器),确实有 使用像Unity这样的东西的优势。
是的,因为它会让你编写更多弱耦合代码。
性能如何?它是否会改善任何事情或使问题复杂化。
不,它不会提高性能。
我可以在不需要不同服务的情况下以其他方式测试我的应用程序。
如果你不使用接口来削弱应用程序不同层之间的耦合,那就不要自欺欺人地认为你是对应用程序进行单元测试。你正在做的是集成测试,这也是必要的,但它有不同的用途。
是否使用Unity等DI框架并不重要。您只需几行代码即可轻松排列自己的DI。重要的是对接口进行编程。