在 DependencyInjection项目代码分析4-微软的实现(1)中介绍了“ServiceTable”、“ServiceEntry”、“IGenericService”、“IService”、“IServiceCallSite”,这篇介绍下“IGenericService、"IService"、"IServiceCallSite"实现类

GenericService

做为IGenericService的唯一实现类,该类言简意赅,请看代码:

internal class GenericService : IGenericService
    {
        private readonly ServiceDescriptor _descriptor;

        public GenericService(ServiceDescriptor descriptor)
        {
            _descriptor = descriptor;
        }

        public ServiceLifetime Lifetime
        {
            get { return _descriptor.Lifetime; }
        }

        public IService GetService(Type closedServiceType)
        {
            Type[] genericArguments = closedServiceType.GetTypeInfo().GenericTypeArguments;
            Type closedImplementationType =
                _descriptor.ImplementationType.MakeGenericType(genericArguments);

            var closedServiceDescriptor = new ServiceDescriptor(closedServiceType, closedImplementationType, Lifetime);
            return new Service(closedServiceDescriptor);
        }
    }
GenericService

相关文章:

  • 2021-07-16
  • 2021-11-26
  • 2021-09-02
  • 2021-05-27
  • 2022-01-05
  • 2022-12-23
猜你喜欢
  • 2021-12-18
  • 2021-08-05
  • 2021-09-04
  • 2022-03-09
  • 2021-08-03
  • 2021-07-10
相关资源
相似解决方案