Перехват вызова метода .NET - PullRequest
       0

Перехват вызова метода .NET

1 голос
/ 02 сентября 2010

Мне нужно перехватить вызовы метода ... пожалуйста, предложите готовое решение.Необходимо заблокировать доступ к некоторым методам (поэтому их вызов вызовет исключение)

Ответы [ 5 ]

6 голосов
/ 02 сентября 2010

AOP предлагает функции, которые вы ищете.Для полного решения AOP вы можете использовать PostSharp .

Поскольку вы просто ищете способ перехвата вызовов методов, вам просто нужно подмножество AOP.Так что любой IoC-контейнер , который предлагает перехват интерфейса, также подходит.Насколько мне известно, Spring.NET , Unity и Castle Windsor предлагает перехват интерфейса.

Edit : если вам нужноперехват действительно быстрый и есть существующая кодовая база, я предлагаю использовать PostSharp.Чтобы использовать какой-либо контейнер IoC, вам, возможно, потребуется изменить много кода.Если у вас есть новый проект, рассмотрите IoC.Разработка приложений с использованием IoC имеет много положительных эффектов.

2 голосов
/ 02 сентября 2010

Аспектно-ориентированное программирование облегчает такую ​​задачу. Есть много фреймворков, я использовал Spring.Net, который довольно хорош.

2 голосов
/ 02 сентября 2010

Использование перехвата с Unity .

Это ваше готовое решение, часть библиотеки Microsoft Enterprise.

1 голос
/ 02 сентября 2010

Вы можете использовать Castle DynamicProxy

Или даже встроенный класс RealProxy (требует, чтобы ваш класс наследовал MarshalByRefObject)

1 голос
/ 02 сентября 2010

для AOP может предложить это PostSharp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...