Перехват динамических свойств доступа .NET 4 - PullRequest
0 голосов
/ 07 августа 2011

Вот интересный вопрос (по крайней мере, для меня): возможно ли перехватывать произвольные методы доступа к свойствам (получателям / установщикам) в объекте, так что я могу перенаправить этот запрос в другое место, например, к частному объекту-члену?

Я бы хотел, чтобы это выглядело так, как будто мой внешний объект автоматически имеет доступ к определенным внутренним свойствам (т. Е. Ко всему, за исключением нескольких исключений) внутреннего объекта, о котором вызывающая сторона не знает, вЭффект, заставляющий внешний объект «оболочка» вести себя как внутренний объект, без необходимости вручную создавать свойства, которые сопоставляются с каждым из свойств внутреннего объекта.

Вероятно, есть шаблон для этого, но я предполагаю, что он включает в себя вручнуюподключение внешних свойств к внутренним свойствам.

Ответы [ 2 ]

2 голосов
/ 07 августа 2011

Мой фреймворк с открытым исходным кодом ImpromptuInterface (на nuget) имеет множество инструментов для таких вещей. Его главная особенность заключается в том, что он генерирует прокси, которые реализуют и взаимодействуют и перенаправляют вызовы, используя dlr.

Он также имеет множество функций , которые делают вызовы dlr интерактивно доступными. И некоторые примеры DynamicObjects , которые дают отправную точку для создания полезных динамических объектов, таких как ImpromptuForwarder .

0 голосов
/ 07 августа 2011

Вы можете попробовать использовать прокси-объекты

http://www.codeproject.com/KB/cs/Emit_Proxy.aspx

...