无名商城论坛

搜索
查看: 219|回复: 0

[其他技术] 【L·S】浅谈.Net Core Dependency 五

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32464
发表于 2022-5-8 17:32:18 | 显示全部楼层 |阅读模式
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看一下具体实现
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表