我必须使用反射来设置属性定制类的值。这是我必须得到的例子。
class Phone
{
public detailsTelephone DetailsTelephone { get; set; } = new detailsTelephone();
}
class detailsTelephone
{
public PhoneName PHONENAME { get; set; } = new PhoneName();
public PhoneCover PHONECOVER { get; set; } = new PhoneCover();
}
class PhoneName
{
public string LenghtName { get; set; } = string.Empty;
}
class PhoneCover
{
public string ColorCover { get; set; } = string.Empty;
}
class Program
{
static List<Phone> PhoneList = new List<Phone>();
static void Main(string[] args)
{
PhoneList.Add(new Phone());
detailsTelephone p = PhoneList.Last().DetailsTelephone;
var property = typeof(detailsTelephone).GetProperty("PHONENAME");
property.SetValue(p.PHONENAME.LenghtName, "1000", null);
Console.WriteLine(PhoneList.Last().DetailsTelephone.PHONENAME.LenghtName);
Console.ReadLine();
}
}
我用项目中的真实结构更新了帖子。问题是我必须按名称查找第一个属性(PHONENAME),然后将PHONENAME.LenghtName设置为1000个属性。
谢谢。
答案 0 :(得分:0)
问题出在(基于更新的OP)您的Phone类中。您尚未初始化DetailsTelephone属性。以下内容将帮助您解决错误。
class Phone
{
public detailsTelephone DetailsTelephone { get; set; } = new detailsTelephone();
}