我想更新一些使用DynamicProxy的代码到DynamicProxy2。特别是我们使用DynamicProxy来提供两个类的混合。安装程序是这样的:帮助从Castle.DynamicProxy迁移mixin到DynamicProxy2
public interface IHasShape
{
string Shape { get; }
}
public interface IHasColor
{
string Color { get; }
}
public interface IColoredShape : IHasShape, IHasColor
{
}
然后假设IHasShape和IHasColor的一些明显的具体实现,我们会创建这样一个mixin:
public IColoredShape CreateColoredShapeMixin(IHasShape shape, IHasColor color)
{
ProxyGenerator gen = new ProxyGenerator();
StandardInterceptor interceptor = new StandardInterceptor();
GeneratorContext context = new GeneratorContext();
context.AddMiniInstance(color);
return gen.CreateCustomProxy(typeof(IColoredShape), intercetor, shape, context);
}
有IColoredShape没有具体的实现,除了结果的代理创建。 StandardInterceptor接受对IColoredShape对象的调用,并根据需要将它们委派给“形状”或“颜色”对象。
但是,我一直在玩新的DynamicProxy2,并找不到等效的实现。
请编辑您的问题 - 它_seems_不完整。 – driis 2010-04-16 23:59:08