public object Create(CreationContext context) { if (model.Service.IsInterface) { var interceptor = new LazyComponentInterceptor(innerActivator, context); var mixin = new LazyTargetHostMixin(interceptor); var proxyOptions = new ProxyGenerationOptions(); proxyOptions.AddMixinInstance(mixin); var targetInterface = proxyGenerator.CreateInterfaceProxyWithoutTarget(model.Service, Type.EmptyTypes, proxyOptions); var proxy = proxyGenerator.CreateInterfaceProxyWithTargetInterface(model.Service, Type.EmptyTypes, targetInterface, ProxyGenerationOptions.Default, interceptor); return proxy; } // now what? throw new NotImplementedException("Service type must be an interface"); }
public LazyTargetHostMixin(LazyComponentInterceptor interceptor) { this.interceptor = interceptor; }