2013-11-11 5 views
2

Я довольно новичок в MEF, я всегда использовал autofac, который автоматически регистрирует все объекты с объектом «Веб-запрос» в области времени выполнения запроса, поэтому вы всегда можете разрешить HttpRequestBase и аналогичные объекты в зависимостях.Устранение HttpRequestBase в MEF

Есть ли способ изменить регистрацию контейнера MEF, чтобы иметь возможность разрешить эту зависимость?

[Export(typeof(ICustomerContext))] 
public class WebCustomerContext : ICustomerContext 
{ 
    private readonly HttpRequestBase request; 

    [ImportingConstructor] 
    public WebCustomerContext(HttpRequestBase request) 
    { 
      this.request = request; 
    } 
} 

ответ

0

Я думаю, что вы получите поведение, которое вы хотите, если вы экспортируете свою часть, используя политику в NonShared создания. Таким образом, для каждого запроса будет создан новый экземпляр детали:

[PartCreationPolicy(ComponentModel.Composition.CreationPolicy.NonShared)] 
+0

Действительно, MEF по умолчанию не создает экземпляр на зависимость? Позвольте мне попытаться вернуться к вам ... –

+0

Нет, это не работает. Я подозреваю, что еще нужно сделать, чтобы зарегистрировать экземпляры контекста asp.net с контейнером времени ожидания запроса, но я не уверен, как –

Смежные вопросы