доступ к прокси-методу в прокси-классе - PullRequest
0 голосов
/ 29 октября 2010

Привет, я думал о таком случае:

 public class MyService {

        private IList<Entity> data;

        public virtual IList<Entity> GetData()
        {
            return data;
        }        

        public virtual IList<Entity> GetDataAdvanced()
        {
           return GetData();
        }
  } 

Рассмотрим ситуацию, когда у меня есть прокси-сервер этого класса (например, перехватчик журналирования). Проблема в том, что с помощью метода GetData () GetDataAdvanced () будет использовать: прокси или нормальный? После теста я вижу, что он не использует прокси. Мне было интересно, можно ли изменить такое поведение?

Спасибо за помощь.

Kuba

1 Ответ

1 голос
/ 29 октября 2010

Это зависит. Когда вы используете ProxyGenerator.CreateClassProxy() или ProxyGenerator.CreateInterfaceProxyWithoutTarget(), прокси будет дочерним классом вашего исходного класса, который будет создан, а затем, да, GetData() фактически вызовет прокси.

Если вы, однако, используете ProxyGenerator.CreateInterfaceProxyWithTarget() и предоставляете свой собственный экземпляр MyService, прокси-сервер является только оболочкой извне, и внутренние вызовы, такие как GetData(), не будут проходить через прокси.

...