コード例 #1
0
        public void CallSiteFactoryResolvesIEnumerableOfOpenGenericServiceAfterResolvingClosedImplementation()
        {
            IServiceCollection descriptors = new ServiceCollection();

            descriptors.Add(ServiceDescriptor.Scoped(typeof(IFakeOpenGenericService <int>), typeof(FakeIntService)));
            descriptors.Add(ServiceDescriptor.Scoped(typeof(IFakeOpenGenericService <>), typeof(FakeOpenGenericService <>)));

            ServiceProvider provider = descriptors.BuildServiceProvider();

            IFakeOpenGenericService <int> processor = provider.GetService <IFakeOpenGenericService <int> >();
            IEnumerable <IFakeOpenGenericService <int> > processors = provider.GetService <IEnumerable <IFakeOpenGenericService <int> > >();

            Type[] implementationTypes = processors.Select(p => p.GetType()).ToArray();
            Assert.Equal(typeof(FakeIntService), processor.GetType());
            Assert.Equal(2, implementationTypes.Length);
            Assert.Equal(typeof(FakeIntService), implementationTypes[0]);
            Assert.Equal(typeof(FakeOpenGenericService <int>), implementationTypes[1]);
        }
コード例 #2
0
 public TypeWithGenericServices(
     IFakeService fakeService,
     IFactoryService factoryService,
     IFakeOpenGenericService <IFakeService> logger)
 {
 }
コード例 #3
0
 public TypeWithGenericServices(
     IFakeService fakeService,
     IFactoryService factoryService,
     IFakeOpenGenericService<IFakeService> logger)
 {
 }