Как создать простой динамический прокси на C #

Я хочу создать динамический прокси-объект, чтобы добавить к объекту определенные функции.

в основном я хочу получить объект, обернуть его объектом, который выглядит идентично оригиналу, который я получил, и перехватить все вызовы.

class Wrapper : DynamicProxy// dynamic proxy is not a reall class, but i guess something like this exists...
{
    public static T Wrap(T obj)
    {
        return (T) new Wrapper(obj);
    }

    public override object InterceptCall(MethodInfo info, object[] args)
    {
        // do stuff
    }

}

Чтобы уточнить, я хочу сделать что-то похожее на фабрику каналов WCF ...


Я добавляю награду, потому что мне нужен хороший способ прокси-классов (не интерфейсов) и обработки не виртуальных методов (как если бы я унаследовал и добавил метонд под ключевое слово "новое"). Я уверен, что все это вполне возможно, поскольку это делает .Net.

49
задан AK_ 3 January 2012 в 04:38
поделиться