我想構建一個動態代理對象以將某些功能添加到對象。如何在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可以。
的代碼你看着http://www.castleproject.org/dynamicproxy/index.html? –
@ np-hard如果你發佈這個答案,我會接受它...不是100%我在找什麼,但足夠好。 –
您是否知道在編譯時或者在運行時需要代理的類型? – Sneal