我找不到合适的Unity配置来让它与MvcMembership一起工作。
此时,我收到以下错误消息:
无法构造类型Boolean。您必须配置
容器来提供此值。
以下是我注册依赖项的代码:
container.RegisterInstance<MembershipProvider>(Membership.Provider);
container.RegisterType<IMembershipSettings,AspNetMembershipProviderSettingsWrapper>();
container.RegisterType<IUserService, AspNetMembershipProviderWrapper>();
container.RegisterType<IPasswordService, AspNetMembershipProviderWrapper>();
container.RegisterType<IRolesService, AspNetRoleProviderWrapper>();
container.RegisterType<ISmtpClient, SmtpClientProxy>();
container.RegisterType<IRegistrationSettings, RegistrationSettings>();
这是我的堆栈跟踪:
[InvalidOperationException:无法构造类型Boolean。必须配置容器才能提供此值。]
Microsoft.Practices.ObjectBuilder2.DynamicMethodConstructorStrategy。GuardTypeIsNonPrimitive(IBuilderContext上下文,SelectedConstructor SelectedConstructor)+277
Microsoft.Practices.ObjectBuilder2.DynamicMethodConstructorStrategy.PreBuildUp(IBuilderContext上下文)+485
Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(IBuilderContext上下文)+434
Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlanCreatorPolicy.CreatePlan(IBuilderContext上下文,NamedTypeBuildKey buildKey)+400
Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(IBuilderContext上下文)+222
Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(IBuilderContext上下文)+434
Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(NamedTypeBuildKey newBuildKey)+318
BuildUp_MvcMembership.Settings.RegistrationSettings(IBuilderContext)+216
Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(IBuilderContext上下文)+304
Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(IBuilderContext上下文)+434
Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(NamedTypeBuildKey newBuildKey)+318
BuildUp_MvcMembership.Settings.AspNetMembershipProviderSettingsWrapper(IBuilderContext)+220
Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(IBuilderContext上下文)+304
Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(IBuilderContext上下文)+434
Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(NamedTypeBuildKey newBuildKey)+318
BuildUp_MyProject.Web.Areas.MvcMembership.Controllers.UserAdministrationController(IBuilderContext)+223
Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(IBuilderContext上下文)+304
Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(IBuilderContext上下文)+434
Microsoft.Practices.Unity.UnityContainer.DoBuildUp(类型t,现有对象,字符串名称,IEnumerable`1 resolverOverrides)+440
[ResolutionFailedException:解析依赖项失败,type=“MyProject.Web.Areas.MvcMembership.Controllers.UserAdministrationController”,name=“(none)”。
解析时发生异常:。
异常为:InvalidOperationException-无法构造布尔类型。您必须配置容器以提供此值。
发生异常时,容器为:
正在解析MyProject.Web.Areas.MvcMembership.Controllers.UserAdministrationController,(无)
正在解析构造函数MyProject.Web.Areas.MvcMembership.Controllers.UserAdministrationController的参数“membershipSettings”(MvcMembership.Settings.IMembershipSettings membershipSettings.MvcMembership.IUserService userService,MvcMembership.IPasswordService passwordService,MvcMembership.IRolesService,MvcMembership.ISmtpClient smtpClient)
正在解析MvcMembership.Settings.AspNetMembershipProviderSettingsWrapper,(none)(从MvcMembership.Settings.IMembershipSettings映射而来,(none))
正在解析构造函数MvcMembership.Settings.AspNetMembershipProviderSettingsWrapper的参数“registration”
正在解析MvcMembership.Settings.RegistrationSettings,(none)(从MvcMembership.Settings.IRegistrationSettings映射而来,(none))
正在解析构造函数MvcMembership.Settings.RegistrationSettings的参数“requiresUniqueEmailAddress”(System.Boolean requiresUnique EmailAddress)
正在解析System.Boolean,(无)
]
Microsoft.Practices.Unity.UnityContainer.DoBuildUp(类型t,现有对象,字符串名称,IEnumerable
1 resolverOverrides) +546
Microsoft.Practices.Unity.UnityContainer.DoBuildUp(Type t, String name, IEnumerable
1个解析器覆盖)+20
System.Web.Mvc.DefaultControllerActivator.Create(RequestContext RequestContext,Type controllerType)+68
[无效操作异常:尝试创建类型为“MyProject.Web.Areas.MvcMembership.Controllers.UserAdministrationController”的控制器时出错。请确保该控制器具有无参数公共构造函数。]
System.Web.Mvc.DefaultControllerActivator.Create(RequestContext RequestContext,Type controllerType)+634003
System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext RequestContext,String controllerName)+93
System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBasehttpContext,IController&controller,IContrlerFactory&factory)+346
System.Web.Mvc.<>c_
显示类6.b
_2()+71
System.Web.Mvc.<>c_显示类b
1.<ProcessInApplicationTrust>b__a() +19
System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Func
1函数)+161
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+405
System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,Boolean和completedSynchronously)+375