【L·S】浅谈.Net Core Dependency 五
public class ServiceDescriptor{ public ServiceDescriptor( Type serviceType, Type implementationType, ServiceLifetime lifetime) : this(serviceType, lifetime) { ImplementationType = implementationType; } public ServiceDescriptor( Type serviceType, object instance) : this(serviceType, ServiceLifetime.Singleton) { ImplementationInstance = instance; } public ServiceDescriptor( Type serviceType, Func factory, ServiceLifetime lifetime) : this(serviceType, lifetime) { ImplementationFactory = factory; } private ServiceDescriptor(Type serviceType, ServiceLifetime lifetime) { Lifetime = lifetime; ServiceType = serviceType; } public ServiceLifetime Lifetime { get; } public Type ServiceType { get; } public Type ImplementationType { get; } public object ImplementationInstance { get; } public Func ImplementationFactory { get; }}这里我们只是粘贴了初始化的方法,通过这个初始化我们得到了,本质其实就是给描述具体注册的Lifetime、ServiceType、ImplementationType、ImplementationInstance、ImplementationFactory赋值。在平时的使用中,我们在注册服务的时候还会用到这种注册方式Copyservices.Add(ServiceDescriptor.Scoped());//services.Add(ServiceDescriptor.Scoped(typeof(IPersonService),typeof(PersonService)));//或services.Add(ServiceDescriptor.Transient());//services.Add(ServiceDescriptor.Transient(typeof(IPersonService), typeof(PersonService)));//或services.Add(ServiceDescriptor.Singleton());//services.Add(ServiceDescriptor.Singleton(typeof(IPersonService), typeof(PersonService)));这种注册方式是通过ServiceDescriptor自身的操作去注册相关实例,我们拿出来其中一个Transient看一下具体实现http://cdn.u1.huluxia.com/g4/M03/A8/68/rBAAdl8HssmAcXJdAAKqv8KiwVM726.jpg
页:
[1]