Неправильно ли ссылаться на Autofac в моих проектах только для Owned ?

Я недавно стал активным пользователем функции Autofac OwnedInstances. Например, я использую его, чтобы предоставить фабрику для создания единицы работы для моей базы данных, что означает, что мои классы, которые зависят от фабрики UnitOfWork, запрашивают объекты типа:

Func>

Это невероятно полезно - отлично подходит для сохранения IDisposable из моих интерфейсов - но за это приходится платить: поскольку Owned является частью сборки Autofac, я должен ссылаться на Autofac в каждом из моих проектов, которые знают о Owned и помещают «using Autofac.Features.OwnedInstances» в каждый файл кода.

Func имеет большое преимущество, поскольку он встроен в платформу .NET, поэтому я не сомневаюсь, что Func можно использовать в качестве универсальной фабричной оболочки. Но Owned находится в сборке Autofac, и каждый раз, когда я использую его, я создаю жесткую ссылку на Autofac (даже если моя единственная ссылка на Autofac - это тип Owned в аргументе метода интерфейса).

У меня вопрос: это плохо? Будет ли это укусить меня так, как я? м еще не учли? Иногда у меня есть проект, на который ссылаются многие другие проекты, и поэтому, естественно, мне нужно, чтобы его зависимости были как можно ближе к нулю; делаю ли я зло, передавая Func > (который фактически является поставщиком транзакции базы данных) в методы в этих интерфейсах (которые в противном случае были бы независимыми от autofac)?

Возможно, если бы Owned был встроенным типом .NET, вся эта дилемма исчезла бы? (Следует ли мне даже задерживать дыхание, чтобы это произошло?)

10
задан Community 23 May 2017 в 12:26
поделиться