У меня есть следующий кодусловное Уничтожение объектов с помощью рамки DI (Ninject)
public class MyService : IMyService
{
private readonoly IUnitOfWork _unitOfWork;
public MyService(IUnitOfWork unitOfWork)
{
_unitOfWork = unitOfWork;
}
}
//This code is used by web client
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<IMyService>().To<MyService>();
kernel.Bind<IUnitOfWork>().To<UnitOfWork>().InRequestScope();
}
У меня есть клиент, веб и окна службы как использовать класс «MyService». Я хочу избавиться от «единицы работы» в конце HTTP-запроса, если клиент является веб-сайтом, где, как если клиент является службой Windows, я хочу избавиться от единицы работы после каждого вызова базы данных. как добиться этого? могу ли добавить дополнительный флаг в конструктор MyService, чтобы идентифицировать клиента, но как изменить этот код для передачи жестко заданного значения этому параметру при сопоставлении конкретных типов с интерфейсами?