Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc Unity容器试图解析未注册的类型,引发错误_Asp.net Mvc_Dependencies_Unity Container_Code Injection - Fatal编程技术网

Asp.net mvc Unity容器试图解析未注册的类型,引发错误

Asp.net mvc Unity容器试图解析未注册的类型,引发错误,asp.net-mvc,dependencies,unity-container,code-injection,Asp.net Mvc,Dependencies,Unity Container,Code Injection,我继承了一个现有的ASP.NETMVC项目,该项目使用UnityDI容器。其所有注册都在web.config中定义 当一个新的服务/类被引入到项目中时,我会创建它和一个接口,然后更新配置文件来处理注册。例如: 到目前为止,这一切都很好 我现在遇到了一个我不明白的问题,我承认我的统一知识不是最深刻的 我创建了一个新的MVC Web应用程序,它将使用与第一个应用程序相同的后端层,如上所示。我已经以同样的方式配置了Web.Config,并且所有引用都已就位。我遇到的问题是,新的web应用程序利用AS

我继承了一个现有的ASP.NETMVC项目,该项目使用UnityDI容器。其所有注册都在web.config中定义

当一个新的服务/类被引入到项目中时,我会创建它和一个接口,然后更新配置文件来处理注册。例如:

到目前为止,这一切都很好

我现在遇到了一个我不明白的问题,我承认我的统一知识不是最深刻的

我创建了一个新的MVC Web应用程序,它将使用与第一个应用程序相同的后端层,如上所示。我已经以同样的方式配置了Web.Config,并且所有引用都已就位。我遇到的问题是,新的web应用程序利用ASP.Net身份作为其安全机制(以前的应用程序具有简单的成员身份)

使用标准ASP.Net MVC身份验证模板注册新用户时,出现错误“当前类型Microsoft.AspNet.Identity.IUserStore`1[Foo.Web2.Models.ApplicationUser]是一个接口,无法构造。是否缺少类型映射?

Unity似乎正在尝试处理ApplicationUserManager类的参数

public ApplicationUserManager(IUserStore<ApplicationUser> store)
public ApplicationUserManager(IUserStore)
有办法解决这个问题吗?我能让Unity不处理这个(可能还有其他模板化的代码)而只解析我在.Config中定义的代码吗


谢谢,

最后,我明确添加了IUserStore的注册

container.RegisterType(typeof(IUserStore<ApplicationUser>), typeof(UserStore<ApplicationUser>));
container.RegisterType(typeof(IUserStore),typeof(UserStore));
让我吃惊的是,添加Unity似乎会影响到整个代码库中以前工作过的许多接口。如果还有任何这种性质的错误,我一定会显式地注册有问题的接口


我仍然怀疑,必须有一些选项,使Unity仅限于提供的注册,Unity专家能提供建议吗?

最后,我明确添加了IUserStore的注册

container.RegisterType(typeof(IUserStore<ApplicationUser>), typeof(UserStore<ApplicationUser>));
container.RegisterType(typeof(IUserStore),typeof(UserStore));
让我吃惊的是,添加Unity似乎会影响到整个代码库中以前工作过的许多接口。如果还有任何这种性质的错误,我一定会显式地注册有问题的接口

我仍然怀疑,必须有一些选择,使Unity仅限于提供的注册,有任何Unity专家建议吗

container.RegisterType(typeof(IUserStore<ApplicationUser>), typeof(UserStore<ApplicationUser>));