2013-06-12 2 views
1

Итак, я столкнулся с this issue с бундстрапом Windsor для Нэнси. Мне удалось сверлить небольшой тестовый проект, где я могу воспроизвести то, что происходит не так. Вы можете найти проект here.Замок Виндзор Конфигурация IInterceptor (ошибка Нэнси)

Что, кажется, идет не так это: DynamicProxy только кажется, поймать вызов метода void Handle(Action<string> oncomplete) и не string Handle(string input) метод, который называется на другом потоке . Как будто Engine больше не проксирован после того, как он был отправлен в другой поток. Царапины: это просто вызов другого метода в том же классе, который не проксирован.

Это означает, что выход из программы только

Handled Handle with return type System.Void 
test 

и не

Handled Handle with return type System.Void 
Handled Handle with return type System.String 
test 

Это ожидаемое поведение динамических прокси? Эти прокси на другом потоке не длиннее, ну, прокси? Или что-то не так с кодом?

EDIT: Только RTFM'd Динамический прокси, и ему кажется Works As Intended. Теперь как мне настроить экземпляр IEngine для использования правильного типа прокси?

ответ

2

Попробуйте изменить:

Component.For<MyEngine>().Forward<IEngine>().Interceptors<ScopeInterceptor>()); 

в

Component.For<MyEngine>().Forward<IEngine>().Forward<MyEngine>().Interceptors<ScopeInterceptor>()); 

У меня нет времени на самом деле попробовать это, но это должно заставить Виндзора в создание класса прокси, который должен решить проблему

С уважением, Marwijn.

- редактировать -

для текущей ссылки попробуйте заменить:

Component.For<IEngine>().ImplementedBy<Engine>() 

с:

Component.For<IEngine, Engine>().ImplementedBy<Engine>() 
+0

К сожалению, ссылка на мой проект не был на правильной редакции. В ревизии, на которую вы смотрели, действительно содержался рабочий код, но я действительно не хочу подклассировать «Двигатель», как я сделал в ревизии, на которую вы смотрели. – Lodewijk

+0

Правильно ли работает ссылка? – Marwijn

+0

Jep, только что отредактировал его. Дело в том, что если я перейду в подкласс Engine, тогда мне больше не нужен DynamicProxy. Поэтому я хочу избежать этого, если возможно – Lodewijk

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