我正在尝试使用服务堆栈的缓存设施。这些是通过 RequestContext 访问的,它由 IOC 在您的 Service 中注入。
如果您使用默认的 Funq IOC,这将按预期工作,当您挂接 AutoFac 时它不起作用,RequestContext 为空,我不确定如何配置 autofac 来构建它。这里有什么线索吗?我的 AutoFac 配置:
var builder = new ContainerBuilder();
//Now register all dependencies to your custom IoC container
builder.RegisterAssemblyTypes(new[] { typeof(AppHost).Assembly })
.PropertiesAutowired(PropertyWiringFlags.AllowCircularDependencies)
.AsImplementedInterfaces()
.SingleInstance();
container.Register<ICacheClient>(new MemoryCacheClient());
IContainerAdapter adapter = new AutofacIocAdapter(builder.Build());
container.Adapter = adapter;
编辑:
我的服务已经扩展了 ServiceStack.ServiceInterface.Service:
public class UserDetailsService : ServiceStack.ServiceInterface.Service
它实现了 IRequiresRequestContext,RequestContext 为空。如果我删除 autofac,那么它会按预期工作。使用 Autofac RequestContext 为空