使用属性创建类的实例

本文关键字:实例 创建 属性 | 更新日期: 2023-09-27 18:01:45

我有两个字段,像

private IFruit fruit;
private Banana banana;

创建Banana的实例:

var banana = new Banana(fruit);

我想为Banana字段创建一个属性来为我创建Banana实例的工作!

使用属性创建类的实例

属性不会导致任何代码被执行——你必须使用反射来访问它们。如果您愿意,您可以实现具有此行为的基类,并将反射代码添加到构造函数中:

abstract class AutoCreateBase
{
    public MyBase()
    {
        // Reflection to go through the fields, find the attributes, and use Activator.CreateInstance() on each
    }
}
class MyClass : AutoCreateBase
{
    [AutoCreate]
    private Banana banana;
}

也有一些容器如unity提供这个功能