Skip to content

构造函数实例化

构造函数实例化是默认的实例化方式,也是最常用的实例化方式。分为以下情况:

  1. 构造函数带有 [Instance],一定会被当成实例化入口,不同的版本的入口,可以通过Instance标明版本
  2. 存在默认构造函数,会以默认构造函数作为实例化入口
  3. 只有一个构造函数,会以此构造函数作为实例化入口
C#
[Service]
public class T1
{
    //没有任何构造函数,通过默认构造函数实例化
}

[Service]
public class T2
{
    /// <summary>
    /// 存在多个构造函数,当前是默认构造函数,通过此构造函数实例化
    /// </summary>
    public T2() { }

    public T2(string name) { }

}

[Service]
public class T3
{
    /// <summary>
    /// 仅有一个构造函数,通过此构造函数实例化
    /// </summary>
    /// <param name="dataSource">构造函数的参数,必须是容器管理的类型</param>
    public T3(DataSource dataSource) { }
}

[Service]
public class T4
{

    /// <summary>
    /// 存在多个构造函数,此构造函数带有[Instance],通过此构造函数实例化
    /// </summary>
    /// <param name="dataSource">构造函数的参数,必须是容器管理的类型</param>
    [Instance]
    public T4(DataSource dataSource) { }

    public T4(string name) { }

}

public class T5
{
    /// <summary>
    /// 此构造函数带有[Instance],需要版本1时,通过此构造函数实例化
    /// </summary>
    [Instance(1)]
    public T5() { }


    /// <summary>
    /// 此构造函数带有[Instance],需要版本2时,通过此构造函数实例化
    /// 同时当前也是最高版本,所以默认也是以此构造函数实例化
    /// </summary>
    [Instance(2)]
    public T5(DataSource dataSource) { }

}

沪ICP备2025119739号