我在创建数据服务并使用 Autofac WCF 集成来解决对我的数据模型的依赖时遇到了问题。注册形式如下:
builder.RegisterType<MyService>()
.InstancePerDependency();
builder.RegisterType<MyModel>()
.InstancePerLifetimeScope();
MyModel 依赖于 MyProvider
public MyModel (MyProvider provider)
{
_provider = provider;
}
由于与我的应用程序相关的原因,此提供程序在请求范围中注册时出现问题。
builder.RegisterType<MyProvider>()
.As<MyProvider>()
.InstancePerMatchingLifetimeScope(RequestContextTag);
很明显,请求容器是在每个 ASP.Net 请求上创建和处理的。
但是,MyModel 和 MyService 注册在 Application 范围内。我想出了两种可能的解决方案-
- 更改提供者的范围(不可能,因为必须改造几乎整个应用程序)
- 在请求范围内注册服务和模型(不知道这是否可能,如果完全正确,是否正确)
任何意见/建议表示赞赏。谢谢。