Я получил несколько статических классов с методами расширения, которые добавляют «бизнес-логику» к сущностям, использующим шаблон хранилища.
Теперь иногда мне нужно создать новый IRepository
в этих функциях расширения.
В настоящее время я работаю над этим, обращаясь к своему ядру Ninject через объект, который расширяю, но это действительно ужасно:
public static IEnumerable<ISomething> GetSomethings(this IEntity entity)
{
using (var dataContext = entity.kernel.Get<IDataContext>())
return dataContext.Repository<ISomething>().ToList();
}
Я также мог бы создать статический конструктор, который каким-то образом получал бы доступ к ядру Ninject с фабрики. Есть ли уже инфраструктура для этого в Ninject 2?
Кто-нибудь знает лучшее решение? Есть ли у кого-нибудь комментарии по поводу реализации бизнес-логики.