如何为 Student class 的深层属性设置值?

How do I set value into deep properties of the Student class?

我对 C# 还是个新手。下面是我的学生 class

class Student
{
    public partial class Document
    {
        private StudentBio studentBio;
        public StudentBio StudentBio{get;set;}
    }
    public partial class StudentBio
    {
        private StudentCourse[] studentCourse;
        public StudentCourse[] StudentCourse{get;set;}
    }

    public partial class StudentCourse
    {
        private string courseId;
        private string courseName;
        public string CourseName{get;set;}
    }
}

如何设置 courseId,因为在字段中设置值时出现错误。我无法像Document.StudentBio.StudentCourse.CourseId那样直接访问来设置值。

public static void Main()
{   
    Student myObject = new Student();
    Type myType = typeof(Student);
    FieldInfo myFieldInfo = myType.GetField("courseId", 
        BindingFlags.NonPublic | BindingFlags.Instance); 
    Console.WriteLine(myFieldInfo);
}

不需要Reflection设置一个deep属性。不确定你为什么要建立这么多层次结构,但你可以通过执行以下操作来解决你的问题。

您必须在每个 class 的构造函数中初始化 属性 以避免 NUllReferenceExecption

public class Student
{
    public Student()
    {
        StudentDoc = new Document();
    }
   public Document StudentDoc { get; set; }

}
public class Document
{
    public Document()
    {
        StudentBio = new StudentBio();
    }
    public StudentBio StudentBio { get; set; }
}
public class StudentBio
{
    public StudentBio()
    {
        StudentCourse = new StudentCourse();
    }
    public StudentCourse StudentCourse { get; set; }
}
public class StudentCourse
{
    public string CourseId { get; set; }
    public string CourseName { get; set; }
}

从主要

public static void Main()
{ 
        Student myObject = new Student();          
        myObject.StudentDoc.StudentBio.StudentCourse.CourseId = "10";
}