试图在ASP.Net Web API项目中实现依赖注入。Unity依赖注入 - 如何在运行时创建要注入的实例
我希望能够在我的一些服务中注入Account
的实例。
Account
实例应该与用户Guid
一起创建,并且直到运行时才能知道。
所以在我的服务,我有:
public TransactionService(Account acc)
{
_account = acc;
}
而在我的应用程序启动时,我可以做到这一点 - 在容器是一个新的UnityContainer
:
container.RegisterType<Instanet.Engine.Account>(new InjectionConstructor(new Guid("xxxxxx")));
这,当然,是不是任何好的,因为它会使用相同Account
为每个用户/请求等。
如果我尝试使用类似的东西:
container.RegisterType<Instanet.Engine.Account>(new InjectionConstructor(GetTheUsersID()));
...其中GetTheUsersID()需要检查Cookie或ASP.Net身份请求,当然在应用程序启动时不可用。 (请简单地说,这个DI东西伤害了我的大脑)我是否实现了这个功能,这样我就可以将实例化的Account
注入任何可能需要它的服务中。
谢谢,但并不能真正帮助很大。据我所知,引导程序代码是在应用程序第一次启动时运行的。因此,这个问题 - 我需要的一些信息目前不可用。账户也是遗留的东西,这使得它更加困难。 – Darren