У меня есть приложение, которое в настоящее время разделено на уровни доступа к сервисам и данным (в работе находится слой MVC). Я пытаюсь уменьшить количество стандартного кода Ninject, необходимого для моих занятий.
Моей первой идеей был базовый класс для каждого типа бизнес-объекта (т. Е. UserBase), который будет расширен с помощью UserService и UserDAO. К сожалению, это помешало бы мне расширить любые другие классы (то есть класс AbstractService, расширенный всеми реализациями Service, класс AbstractDAO и т. Д.).
Моей второй идеей была простая фабрика, возвращающая IKernel для различных реализаций IModule, переданных ему. К сожалению, каждому классу потребуется переменная-член IKernel, но это решило проблему и позволило создать AbstractService и AbstractDAO.
class NinjectKernelFactory
{
private NinjectKernelFactory()
{
}
public static IKernel getKernel(params IModule[] modules)
{
IKernel kernel = new StandardKernel(modules);
return kernel;
}
}
Есть ли другие идеи для оптимизации моего использования Ninject?