/ / [Castle.DynamicProxy] Створений об'єкт проксі не має властивостей оригінального об'єкта, встановленого правильно - inversion-of-control, castle-windsor, castle, castle-dynamicproxy

[Castle.DynamicProxy] Створений проксі-об'єкт не має властивостей належного встановлення початкового об'єкта - inversion-of-control, castle-windsor, castle, castle-dynamicproxy

Я тут нова, і сподіваюся, моє перше запитання нікого не бентежить.

Я використовую Castle Windsor і Castle DynamicProxyразом, щоб інтегрувати AOP з IOC, щоб я міг запровадити послугу реєстрації (і аудит тощо), перехоплюючи всі служби в моєму проекті.

Я намагаюся отримати проксі-сервер для вирішеного екземпляраце зроблено, але без удачі. Оскільки повернений проксі-сервер матиме властивості дозволеного екземпляра, встановленого як null. Далі наведена інформація про налагодження для довідки (властивість PROBLEMATIC - TimeService).

вирішений екземпляр перед проксі

Вирішений екземпляр перед проксі.

проксі-об'єкт

Проксі-об'єкт

Я щось пропустив чи неправильно зрозумів Castle DynamicProxy? Я шукав будь-які рішення, але мені не пощастило.

Будь-які відповіді дуже вдячні. Заздалегідь спасибі.

Відповіді:

1 для відповіді № 1

Ви повинні використовувати вбудовану підтримку Віндзора для AOP під час реєстрації, не замінюючи WindsorContainer.Resolve інакше ви також зіткнетеся з іншими проблемами, пов’язаними з випуском компонентів та терміну служби контейнера:

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

Докладніші відомості див. У документах: https://github.com/castleproject/Windsor/blob/master/docs/registering-interceptors-and-proxyoptions.md