gpt4 book ai didi

c# - 如何使用反射在对象的构造函数中实例化属性

转载 作者:太空宇宙 更新时间:2023-11-03 11:32:14 29 4
gpt4 key购买 nike

我有 POCO 对象 MyObject

public class MyModel
{
public MyProperty MyProperty001 { get; set; }
public MyProperty MyProperty002 { get; set; }


MyModel()
{
// New up all the public properties
var properties = GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);

foreach (var propertyInfo in properties)
{
//Activator.CreateInstance()
}
}
}

有数百个属性,是否可以使用反射在构造函数中实例化这些属性?我有 PropertyInfo,但不知道下一步是什么。

谢谢,斯蒂芬

最佳答案

属性类型包含在 PropertyInfo 对象的 PropertyType 属性中,因此您可以通过调用 Activator.CreateInstance(propertyInfo.PropertyType )。您需要通过调用 propertyInfo.SetValue(this, instance, null)

将实例设置为容器对象的属性

完整示例:

foreach (var propertyInfo in properties) 
{
var instance = Activator.CreateInstance(propertyInfo.PropertyType);
propertyInfo.SetValue(this, instance, null);
}

关于c# - 如何使用反射在对象的构造函数中实例化属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7393087/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com