Appearance
构造函数实例化
构造函数实例化是默认的实例化方式,也是最常用的实例化方式。分为以下情况:
- 构造函数带有 [Instance],一定会被当成实例化入口,不同的版本的入口,可以通过Instance标明版本
- 存在默认构造函数,会以默认构造函数作为实例化入口
- 只有一个构造函数,会以此构造函数作为实例化入口
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) { }
}