diff --git a/src/Castle.Windsor.Extensions.DependencyInjection/Extensions/ServiceDescriptorExtensions.cs b/src/Castle.Windsor.Extensions.DependencyInjection/Extensions/ServiceDescriptorExtensions.cs index 492aec33f5..4360b10a64 100644 --- a/src/Castle.Windsor.Extensions.DependencyInjection/Extensions/ServiceDescriptorExtensions.cs +++ b/src/Castle.Windsor.Extensions.DependencyInjection/Extensions/ServiceDescriptorExtensions.cs @@ -14,8 +14,6 @@ namespace Castle.Windsor.Extensions.DependencyInjection.Extensions { - using System.Reflection; - using Castle.MicroKernel.Registration; public static class ServiceDescriptorExtensions @@ -26,11 +24,8 @@ public static IRegistration CreateWindsorRegistration(this Microsoft.Extensions. { return RegistrationAdapter.FromOpenGenericServiceDescriptor(service); } - else - { - var method = typeof(RegistrationAdapter).GetMethod("FromServiceDescriptor", BindingFlags.Static | BindingFlags.Public).MakeGenericMethod(service.ServiceType); - return method.Invoke(null, new object[] { service }) as IRegistration; - } + + return RegistrationAdapter.FromServiceDescriptor(service); } } } \ No newline at end of file diff --git a/src/Castle.Windsor.Extensions.DependencyInjection/RegistrationAdapter.cs b/src/Castle.Windsor.Extensions.DependencyInjection/RegistrationAdapter.cs index b1891dd38b..974c02ae88 100644 --- a/src/Castle.Windsor.Extensions.DependencyInjection/RegistrationAdapter.cs +++ b/src/Castle.Windsor.Extensions.DependencyInjection/RegistrationAdapter.cs @@ -41,25 +41,25 @@ public static IRegistration FromOpenGenericServiceDescriptor(Microsoft.Extension .IsDefault(); } - public static IRegistration FromServiceDescriptor(Microsoft.Extensions.DependencyInjection.ServiceDescriptor service) where TService : class + public static IRegistration FromServiceDescriptor(Microsoft.Extensions.DependencyInjection.ServiceDescriptor service) { - var registration = Component.For() + var registration = Component.For(service.ServiceType) .NamedAutomatically(UniqueComponentName(service)); - if(service.ImplementationFactory != null) + if (service.ImplementationFactory != null) { - registration = UsingFactoryMethod(registration, service); + registration = UsingFactoryMethod(registration, service); } - else if(service.ImplementationInstance != null) + else if (service.ImplementationInstance != null) { - registration = UsingInstance(registration, service); + registration = UsingInstance(registration, service); } - else if(service.ImplementationType != null) + else if (service.ImplementationType != null) { - registration = UsingImplementation(registration, service); + registration = UsingImplementation(registration, service); } - return ResolveLifestyle(registration, service) + return ResolveLifestyle(registration, service) .IsDefault(); }