当前位置: 首页 > 编程语言 > C#

C#LearningTutorial-UsingSimpleInjectorinWebAPIandOWIN分享

时间:2023-04-10 23:39:07 C#

在WebAPI和OWIN中使用简单注入器当我在我的控制器中访问一个方法时,我得到这个在尝试创建类型为“TestController”的控制器时发生错误。确保控制器有一个无参数的公共构造函数。这是在System.Web.Http.Dispatcher.DefaultHttpControllerActivator中的堆栈跟踪.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()这是内部异常的堆栈跟踪在System.Linq.Expressions.Expression.New(Typetype)rnatSystem.Web.Http.Internal.TypeActivator.Create[TBase](TypeinstanceType)在System.Web.Http.Dispatcher.DefaultHttpControllerActivator.GetInstanceOrActivator(HttpRequestMessage请求,类型controllerType,Func`1和激活器)在System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage请求,HttpControllerDescriptor控制器描述符,类型controllerType)这是我的控制器的类型publicclassTestController:ApiController{privatereadonlyITestRepo_repo;公共TestController(ITestRepo回购){_repo=回购;}publicIEnumerableGet(){returnnewstring[]{“value1”,“value2”};}publicstringGet(intid){return_repo.GetId(id);}}这就是我设置SimpleInjector方法的方式publicclassStartup{publicvoidConfiguration(IAppBuilderapp){//照常创建容器。varcontainer=newContainer();//注册您的类型,例如使用集成包中的RegisterWebApiRequest//扩展:container.RegisterWebApiRequest();container.RegisterWebApiControllers(GlobalConfiguration.Configuration);容器.验证();GlobalConfiguration.Configuration.DependencyResolver=newSimpleInjectorWebApiDependencyResolver(容器);//ConfigureOAuth(app,containerconfiguration=);WebApiConfig.Register(配置);app.UseWebApi(配置);我有同样的问题但使用UnityDependencyResolver但我认为它也适用于SimpleInjectorWebApiDependencyResolver。试试这样注册你的解析器(作为HttpConfiguration的一个属性):以上就是C#学习教程的全部内容:UsingSimpleInjectorinWebAPIandOWIN,如果对大家有用还需要进一步了解C#学习教程,希望大家多多关注—publicvoidConfiguration(IAppBuilderapp){varcontainer=GetContainer();//初始化容器HttpConfigurationconfig=newHttpConfiguration{DependencyResolver=newSimpleInjectorWebApiDependencyResolver(container);};WebApiConfig.Register(配置);应用程序UseWebApi(配置);}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: