Разрешение HttpRequestBase в MEF
Я довольно новичок в MEF, я всегда использовал autofac, который автоматически регистрирует все объекты, находящиеся в области "веб-запроса", в жизненном объеме запроса, поэтому вы всегда можете разрешить HttpRequestBase и подобные объекты в зависимостях.
Есть ли способ изменить регистрацию контейнера MEF, чтобы можно было разрешить эту зависимость?
[Export(typeof(ICustomerContext))]
public class WebCustomerContext : ICustomerContext
{
private readonly HttpRequestBase request;
[ImportingConstructor]
public WebCustomerContext(HttpRequestBase request)
{
this.request = request;
}
}
1 ответ
Я думаю, что вы получите желаемое поведение, если вы экспортируете свою часть, используя NonShared
политика создания. Таким образом, новый экземпляр детали будет создан для каждого запроса:
[PartCreationPolicy(ComponentModel.Composition.CreationPolicy.NonShared)]