Я столкнулся с проблемой при создании службы данных и использовании Autofac WCF Integration для устранения зависимости от моей модели данных.Регистрация имеет вид:
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 зарегистрированы в области приложения.Я придумал два возможных решения -
- Изменить область действия провайдера (невозможно, поскольку придется переделывать почти все приложение)
- Зарегистрировать службу и модель в области запроса (Don 'не знаю, возможно ли это, и если вообще, исправьте)
Любые советы / предложения приветствуются.Благодаря.