为什么CastleWindsor的BeginScope超出范围?
我正在尝试将Castle Windsor添加到我的Web API项目中,并且正在关注此post ,但是在这行代码中遇到编译时错误:
this._scope = container.BeginScope();
…作为“ ‘Castle.Windsor.IWindsorContainer’不包含’BeginScope’的定义,并且没有扩展方法’BeginScope’接受类型’Castle.Windsor.IWindsorContainer’的第一个参数可以找到(你是否错过了使用指令或汇编参考?) “
这是整个代码,因此可以在上下文中看到:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Http.Dependencies; using Castle.Windsor; using Castle.MicroKernel.Registration; using System.Web.Http; namespace PlatypiPieServer { public class WindsorDependencyResolver : IDependencyResolver { private readonly IWindsorContainer _container; public WindsorDependencyResolver(IWindsorContainer container) { _container = container; } public IDependencyScope BeginScope() { return new WindsorDependencyScope(_container); } public object GetService(Type serviceType) { if (_container.Kernel.HasComponent(serviceType)) return this._container.Resolve(serviceType); else return null; } public IEnumerable GetServices(Type serviceType) { return _container.ResolveAll(serviceType).Cast(); } public void Dispose() { _container.Dispose(); } } public class WindsorDependencyScope : IDependencyScope { private readonly IWindsorContainer _container; private readonly IDisposable _scope; public WindsorDependencyScope(IWindsorContainer container) { this._container = container; this._scope = container.BeginScope(); } public object GetService(Type serviceType) { if (_container.Kernel.HasComponent(serviceType)) return _container.Resolve(serviceType); else return null; } public IEnumerable GetServices(Type serviceType) { return this._container.ResolveAll(serviceType).Cast(); } public void Dispose() { this._scope.Dispose(); } } public class ApiControllersInstaller : IWindsorInstaller { public void Install(Castle.Windsor.IWindsorContainer container, Castle.MicroKernel.SubSystems.Configuration.IConfigurationStore store) { container.Register(Classes.FromThisAssembly() .BasedOn() .LifestylePerWebRequest()); } } }
BeginScope在哪里? 它被弃用了吗?
这是一种扩展方法。 您需要导入Castle.MicroKernel.Lifestyle
命名空间。
- In-Memory HttpServer如何知道要托管哪个WebAPI项目?
- 从模型validation中排除类型(示例DbGeography)以避免InsufficientExecutionStackException
- JSON.NET序列化 – DefaultReferenceResolver如何比较相等?
- Web API路由到操作名称
- 为Web Api版本控制自定义MapHttpAttributeRoutes
- 在WebAPI C#中请求反序列化期间捕获exception#
- 如何将OData查询与DTO映射到另一个实体?
- 我可以在ASP.Net Web API控制器中使用多个Get方法
- MVC Web API绑定模型到派生类