我对 IOC 和 web-api 2 相当陌生,但已经让 StructureMap 在 web-api 2 中的我自己的控制器上工作。我没有管理的是使用个人帐户在 AccountController 上使用 StructureMap。我使用开箱即用的 AccountController,到目前为止我所管理的内容如下:
-
在 Ioc.cs 中我添加了以下内容(由于错误)
x.For<IUserStore<ApplicationUser>>().Use<UserStore<ApplicationUser>>();
x.For<DbContext>().Use(() => new ApplicationDbContext());
x.For<ISecureDataFormat<AuthenticationTicket>()
.Use<SecureDataFormat<AuthenticationTicket>>();
但现在我陷入了这个错误:
“没有注册默认实例,并且无法自动确定类型 IDataSerializer”
我真的不知道在这里做什么。我试图找到数据序列化器的默认实例,但没有运气。
顺便说一句...我已经安装了 Nuget 包“Structuremap.webapi2”
解决了!
将此配置添加到 IoC.cs 或 DefaultRegistry:
For<ISecureDataFormat<AuthenticationTicket>>().Use<SecureDataFormat<AuthenticationTicket>>();
For<IDataSerializer<AuthenticationTicket>>().Use<TicketSerializer>();
For<IDataProtector>().Use(() => new DpapiDataProtectionProvider().Create("ASP.NET Identity"));
For<ITextEncoder>().Use<Base64UrlTextEncoder>();
For<Microsoft.AspNet.Identity.IUserStore<ApplicationUser>>().Use<Microsoft.AspNet.Identity.EntityFramework.UserStore<ApplicationUser>>();
For<System.Data.Entity.DbContext>().Use(() => new ApplicationDbContext());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)