Unity-эквивалент для Bin.ToMethod от Ninject, IPrincipal, IIdentity - PullRequest
6 голосов
/ 23 ноября 2011

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

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

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

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

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

Ответы [ 3 ]

11 голосов
/ 23 ноября 2011

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

container.RegisterType<IIdentity>(new InjectionFactory(u => HttpContext.Current.User.Identity));
1 голос
/ 23 ноября 2011
container.RegisterInstance<IIdentity>(...);
0 голосов
/ 23 ноября 2011

Я полагаю, что статическое фабричное расширение сделает это. Я ржавый на Unity. Seeman Внедрение зависимостей в .NET - хороший ресурс для подобных ситуаций.

...