コード例 #1
0
		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");
		}
コード例 #2
0
		public LazyTargetHostMixin(LazyComponentInterceptor interceptor)
		{
			this.interceptor = interceptor;
		}