Здравствуйте, у меня возникли проблемы с синтаксическим разбором моего контекста базы данных для моих статических вспомогательных классов. Для примера мой класс UserHelper, где я хотел бы сделать некоторый поиск, чтобы узнать, является ли пользователь администратором. Теперь я исправлю их, создав новый контекст в моем Userhelper, но я бы хотел использовать один экземпляр, созданный через ninject. Как это возможно?Ninject MVC и static Helper
public static class UserHelper
{
private static MetropolOpgavebankenEntities _context;
public static MetropolOpgavebankenEntities Context
{
get
{
if (_context == null)
_context =
new MetropolOpgavebankenEntities(
ConfigurationManager.Instance.Configuration.ConnectionString.Value);
return _context;
}
}
public static bool IsAdmin()
{
if (!HttpContext.Current.User.Identity.IsAuthenticated)
return false;
string username = HttpContext.Current.User.Identity.Name;
if(Context.Administrators.Any(x => x.MetropolId.ToLower() == username.ToLower()))
return true;
return false;
}
}
Мой Ninject код
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<MetropolOpgavebankenEntities>().ToMethod(c => new MetropolOpgavebankenEntities(ConfigurationManager.Instance.Configuration.ConnectionString.Value)).InRequestScope();
kernel.Bind<OpgavebankService>().To<OpgavebankService>();
}
Тогда как бы вы сделали помощников в asp.net mvc с инъекцией зависимостей? – Androme
Какие зависимости вы хотите вводить в помощники? Помощники не должны запрашивать базы данных или так. В ASP.NET MVC HTML-помощники должны генерировать небольшие фрагменты HTML-кода, которые будут использоваться в представлении. Информация, которую они генерируют для этого HTML, - это модель представления, которая должна содержать все необходимое. Модель представления заполнена контроллером, который, в свою очередь, вводит все необходимые зависимости. –
Я использую свой помощник для примера, чтобы проверить, является ли пользователь администратором. – Androme