我对如何使用 OWIN CreatePerOwinContext 方法感到困惑。据我所知,这是一个穷人的 DI 机制。然而,我看不到如何使用它。
我们可以在启动序列中注册一个类型/实现,例如:
app.CreatePerOwinContext<IUserService>(() => {
return new UserService() as IUserService;
});
那我们以后怎么解决。文档说它可以通过 Get 方法检索。但是Get<T>
需要一个字符串参数,它是 Enviornment IDictionary 中该条目的键?在这种情况下我怎么知道 key ?
IUserService userService = context.Get<IUserService>(???);
最佳答案
您可以使用 typeof
得到key
参数:
HttpContext.GetOwinContext().Get<ApplicationDbContext>(typeof(ApplicationDbContext).ToString());
此外,Microsoft.AspNet.Identity.Owin
程序集包含 Get<T>()
的无参数版本方法,因此如果您的项目中已有 ASP.NET Identity,则可以使用它。
关于c# - 究竟应该如何使用 IAppBuilder.CreatePerOwinContext<T>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32501238/