我需要创建一个拦截类中属性的代理.我知道如何使用接口创建一个带有Emit的动态代理,但是如果我没有接口呢?我见过使用RealProxy的示例(如下所示:有没有办法在设置类的任何属性时调用方法?)但是是否可以使用类型生成和发出来实现相同的功能?如果可能的话,我不希望具体类的"所有者"看到任何MarshalByRefObject的痕迹(见下文)......
我相信Castle能够做到这一点,但也许它正在使用RealProxy?
User user = Create<User>();
public class User
{
public string Name { get; set; }
}
public T Create<T>()
{
//magic happens here... :)
return (T)GenerateInterceptingProxyFromT(typeof(T));
}
Run Code Online (Sandbox Code Playgroud)