我有一个对象,Course
。当然了,作为一个财产,是先决条件,其他课程的列表:反序列化后管理参考
public class Course
{
public List<Course> Prereqs { get; set; }
...
}
我在应用程序中创建的课程列表,我序列化。该列表稍后加载并反序列化。
假设我有两门课程:微积分1和微积分2.微积分1没有先决条件,微积分2有微积分1作为先决条件。我的应用程序创建一个名为Curriculum
列表:List<Course> Curriculum = JsonConvert.Deserialize<List<Course>>(serializedList);
现在,假设我要微积分1的标题从“微积分1”变为“单变量微积分”,(是,我们假设,在第一个元素列表):
Course Math101 = Curriculum[0];
Math101.CourseName = "Single Variable Calculus";
但是,如果我这样做:Curriculum[1].Prerequisites[0].CourseName; \\ spit out the CourseName for Math101, as recorded as a pre-req for Math102
然后我得到 “积分1”。
这是因为当Curriculum
被序列化时,它将分别序列化Curriculum[0]
(Calc 1)和Curriculum[1].Prerequisite[0]
(也Calc 1)。
我的问题有没有一种简单的方法来管理应该使用C#和JSON的引用类型的序列化?
我认为你的问题的一部分是课程(有先决条件)和“招生”之间的混淆,其中有成绩。入学人数将成为一名学生在任期内参加课程的记录。这将有像出席,成绩,也许测试成绩等属性。 –
@JohnSaunders老实说,这不是我的混乱。这是一个简化的例子,它与一个更大的问题是同构的,因为上下文有一个广泛的熟悉。 – Emily
那么,你在问如何维护对象的身份?此外,您是否有任何循环或多重参考的潜在问题? –