Единственный эквивалент для Ninject Bind.ToMethod of IPrincipal, IIdentity

Я пытаюсь реплицировать следующий синтаксис Ninject в Unity, но не повезло:

Bind<IIdentity>().ToMethod(c => HttpContext.Current.User.Identity);

Я думаю, что это должно выглядеть примерно так:

IUnityContainer container;
...
container.RegisterType<IIdentity>(HttpContext.Current.User.Identity);

Как это должно быть?

+6
23 нояб. '11 в 17:43
источник поделиться
3 ответа

В то время как ответ neontapir может работать, этот метод расширения устарел. Правильный способ сделать это теперь будет использовать InjectionFactory:

container.RegisterType<IIdentity>(new InjectionFactory(u => HttpContext.Current.User.Identity));
+11
23 нояб. '11 в 18:01
источник
container.RegisterInstance<IIdentity>(...);
+1
23 нояб. '11 в 17:50
источник

Я полагаю, что статический factory расширение сделает это. Я ржав на Единство. Seeman Dependency Injection в .NET - хороший ресурс для таких ситуаций.

0
23 нояб. '11 в 17:56
источник

Посмотрите другие вопросы по меткам или Задайте вопрос