public void Throw_Not_Generic_Implementation() { var builder = new DependencyCollection(); Assert.Throws <InvalidOperationException>(() => builder.AddTransient(typeof(IRepository <>), typeof(FooRepository))); }
private static void AddTransient(DependencyCollection dependencies, ServiceDescriptor descriptor) { if (descriptor.ImplementationFactory == null) { dependencies.AddTransient(descriptor.ServiceType, descriptor.ImplementationType); } else { var contracts = new[] { descriptor.ServiceType }; var resolver = BuildDelegateResolver(descriptor); dependencies.Add(new TransientDependency(contracts, resolver)); } }
public void Compile() { var provider = _dependencies .AddTransient <ISession, Session>() .BuildProvider(); var first = provider.GetService <ISession>(); var second = provider.GetService <ISession>(); Assert.NotSame(first, second); }