public DynamicProxyValueInterceptorContext() { var innerCatalog = new TypeCatalog(typeof(Customer)); var interceptor = new FreezableInterceptor(); interceptor.Freeze(); var valueInterceptor = new DynamicProxyInterceptor(interceptor); Catalog = new InterceptingCatalog(innerCatalog, valueInterceptor); Container = new CompositionContainer(Catalog); Context(); }
public static TFreezable MakeFreezable <TFreezable>() where TFreezable : class, new() { var freezableInterceptor = new FreezableInterceptor(); var options = new ProxyGenerationOptions(new FreezableProxyGenerationHook()) { Selector = _selector }; var proxy = _generator.CreateClassProxy(typeof(TFreezable), options, new CallLoggingInterceptor(), freezableInterceptor); return(proxy as TFreezable); }