public void Dynamically_Test() { var generator = new ProxyGenerator(new AspectValidator(new AspectConfigure())); var proxyType = generator.CreateInterfaceProxyType(typeof(ITargetService), typeof(TargetService)); Assert.True(proxyType.GetTypeInfo().IsDynamically()); }
public void CreateProxyType_Test() { var generator = new ProxyGenerator(new AspectValidator(new AspectConfigure())); var proxyType = generator.CreateInterfaceProxyType(typeof(ITargetService), typeof(TargetService)); var proxyInstance = Activator.CreateInstance(proxyType, new InstanceServiceProvider(null), new InstanceServiceProvider(new TargetService())); Assert.IsAssignableFrom<ITargetService>(proxyInstance); }
public void get_ServiceInstance_With_Generic_Test() { var generator = new ProxyGenerator(new AspectValidator(new AspectConfigure())); var proxyType = generator.CreateInterfaceProxyType(typeof(ITargetService), typeof(TargetService)); var serviceInsatnce = new TargetService(); var proxyInstance = Activator.CreateInstance(proxyType, new InstanceServiceProvider(null), new InstanceServiceProvider(serviceInsatnce)); var serviceInstanceAccessor = proxyInstance as IServiceInstanceAccessor <ITargetService>; Assert.NotNull(serviceInstanceAccessor); Assert.Equal <ITargetService>(serviceInstanceAccessor.ServiceInstance, serviceInsatnce); }
public void Create_Generic_ProxyType_Test() { var generator = new ProxyGenerator(new AspectValidator(new AspectConfigure())); var proxyType = generator.CreateInterfaceProxyType(typeof(ITargetService<>), typeof(TargetService<>)); Assert.True(proxyType.GetTypeInfo().IsGenericTypeDefinition); Assert.Single(proxyType.GetTypeInfo().GenericTypeParameters); var proxyInstance = Activator.CreateInstance(proxyType.MakeGenericType(typeof(object)), new InstanceServiceProvider(null), new InstanceServiceProvider(null)); Assert.IsAssignableFrom<ITargetService<object>>(proxyInstance); }
public void get_ServiceProvider_Test() { var generator = new ProxyGenerator(AspectValidatorFactory.GetAspectValidator(new AspectConfigure())); var proxyType = generator.CreateInterfaceProxyType(typeof(ITargetService), typeof(TargetService)); var serviceProvider = new InstanceServiceProvider(null); var proxyInstance = Activator.CreateInstance(proxyType, serviceProvider, new InstanceServiceProvider(new TargetService())); var serviceProviderAccessor = proxyInstance as IServiceProviderAccessor; Assert.NotNull(serviceProviderAccessor); Assert.Equal(serviceProviderAccessor.ServiceProvider, serviceProvider); }
public void CreateProxyType_Cache_Test() { var generator = new ProxyGenerator(new AspectValidator(new AspectConfigure())); var proxyType = generator.CreateInterfaceProxyType(typeof(ITargetService), typeof(TargetService)); var proxyTypeCache = generator.CreateInterfaceProxyType(typeof(ITargetService), typeof(TargetService)); }