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

为什么CastleWindsor的BeginScope超出范围?分享

时间:2023-04-10 20:45:12 C#

为什么CastleWindsor的BeginScope超出范围?我正在尝试将CastleWindsor添加到我的WebAPI项目中,并且我正在关注这篇文章,但是我在这行代码中遇到编译时错误:this._scope=container.BeginScope();...因为“'Castle.Windsor.IWindsorContainer'不包含'BeginScope'的定义,并且没有扩展方法'BeginScope'接受'Castle.Windsor.IWindsorContainer'类型的第一个参数可以找到(你错过了一个usingdirectiveoranassemblyreference?)”这是整个代码,因此可以在上下文中看到它:usingSystem;使用System.Collections.Generic;使用System.Linq;使用System.Web;使用System.Web.Http.Dependencies;使用Castle.Windsor;使用Castle.MicroKernel.Registration;使用System.Web.Http;命名空间PlatypiPieServer{publicclassWindsorDependencyResolver:IDependencyResolver{privatereadonlyIWindsorContainer_container;公共WindsorDependencyResolver(IWindsorContainer容器){_container=容器;}publicIDependencyScopeBeginScope(){returnnewWindsorDependencyScope(_container);}公共对象GetService(类型serviceType){if(_container.Kernel.HasComponent(serviceType))returnthis._container.Resolve(serviceType);否则返回空;}publicIEnumerableGetServices(TypeserviceType){return_container.ResolveAll(serviceType).Cast();}publicvoidDispose(){_container.Dispose();}}publicclassWindsorDependencyScope:IDependencyScope{privatereadonlyIWindsorContainer_container;私有只读IDisposable_scope;publicWindsorDependencyScope(IWindsorContainercontainer){this._container=container;this._scope=container.BeginScope();}publicobjectGetService(TypeserviceType){if(_container.Kernel.HasComponent(serviceType))return_container.Resolve(serviceType);否则返回空;}publicIEnumerableGetServices(TypeserviceType){returnthis._container.ResolveAll(serviceType).Cast();}publicvoidDispose(){this._scope.Dispose();}}公共类ApiControllersInstaller:IWindsorInstaller{publicvoidInstall(Castle.Windsor.IWindsorContainer容器,Castle.MicroKernel.SubSystems.Configuration.IConfigurationStore存储){container.Register(Classes.FromThisAssembly().BasedOn().LifestylePerWebRequest());BeginScope在哪里?它被弃用了吗?这是一个扩展方法,您需要导入Castle.MicroKernel.Lifestyle命名空间。以上是C#学习教程:为什么CastleWindsor的BeginScope超出作用域?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: