2015-08-19 3 views
0

Я работаю над приложением, которое не обновлялось годами, и я должен обновлять его зависимости. Замок Виндзор должен быть повышен с 2.5.4 до 3.3.0. не После обновления, следующий больше не компилируется:Установить перехватчики на несколько типов сразу

container.Register(
    Types.FromThisAssembly().Where(t => Attribute.IsDefined(t, typeof (ServiceBehaviorAttribute))) 
     .WithService.DefaultInterfaces() 
     .Configure(c => c.Interceptors(
      InterceptorReference.ForType<ServiceInterceptor>(), 
      InterceptorReference.ForType<LoggingInterceptor>(), 
      InterceptorReference.ForType<ExceptionInterceptor>()).Anywhere.LifeStyle.Transient)); 

Ошибка:

Only assignment, call, increment, decrement, await expression, and new object expressions can be used as a statement. 

ReSharper пытается помочь путем присвоения переменной:

container.Register(
    Types.FromThisAssembly().Where(t => Attribute.IsDefined(t, typeof (ServiceBehaviorAttribute))) 
     .WithService.DefaultInterfaces() 
     .Configure(c => 
     { 
      var componentRegistration = c.Interceptors(
       InterceptorReference.ForType<ServiceInterceptor>(), 
       InterceptorReference.ForType<LoggingInterceptor>(), 
       InterceptorReference.ForType<ExceptionInterceptor>()).Anywhere.LifeStyle.Transient; 
      componentRegistration; 
     })); 

Это бросает ту же ошибку , Однако.

Я посмотрел высоко и низко, чтобы правильно установить перехватчики на несколько типов одновременно, но все примеры, которые я нашел, либо старые, либо просто устанавливают перехватчики для одного компонента, такие как в this one из документации:

container.Register(
    Component.For<ICalcService>() 
     .Interceptors(InterceptorReference.ForType<ReturnDefaultInterceptor>()).Last, 
    Component.For<ReturnDefaultInterceptor>() 
); 

Это не работает, потому что я не могу зарегистрировать каждый компонент в отдельности.

ответ

1

LifeStyle.Transient заменить с LifestyleTransient()

+0

ли что задокументированы в любом месте? Или это должно быть очевидно? –

+0

Нарушение изменений –

+3

https://github.com/castleproject/Windsor/blob/master/BreakingChanges.txt#L244 – stuartd