Я использую Castle DynamicProxy с Autofac.У меня есть объект, для которого я создал прокси, и у меня есть два перехватчика, которые воздействуют на прокси, один для регистрации исключения, а второй для изменения возвращаемого значения метода.Регистрационный код выглядит следующим образом:
var builder = new ContainerBuilder();
builder.Register(c => c.Resolve<ProxyGenerator>()
.CreateClassProxy<Foo>(
c.Resolve<ResultProcessorInterceptor>(),
c.Resolve<ExceptionLoggingInterceptor>()))
.As<Foo>();
Предоставляя аргументы в этом порядке, я обнаруживаю, что получаю желаемый результат, т. Е. Исключение регистрируется и результат обрабатывается.Если я переверну порядок аргументов, регистрация не произойдет.
Тогда мой вопрос: зарегистрированы ли таким образом, гарантированно ли каждый раз перехватчики выполняются в одном и том же порядке?Или есть лучший способ убедиться, что порядок будет соответствовать тому, что я собираюсь делать каждый раз?
FWIW, я посмотрел на интерфейс IInterceptorSelector.Возможно, я что-то упускаю - что не исключено - но это выглядело как неуместное в этом случае.Но я был бы счастлив, если меня поправят.
При необходимости я могу предоставить более длинный пример кода.
музыковед