重写问题。
基本上我有这两个类:
class Show {
public List<Episode> Episodes{ get; set; }
}
class Episode {
public Show Show{ get; set; }
}
当我向节目添加剧集时,我必须创建一个新的剧集对象。但是,当我这样做时,我还必须填写节目,这变成了一个循环问题。我怎样才能将一集添加到一个节目中,该剧集还包含对其所属节目的引用,而不会以一个永恒的循环结束?
我想我遗漏了一些重要信息:
我有一个为我创建视图模型的工厂。CreateShowViewModel
当我想要一个节目列表时,请在列表中的每个节目上调用该方法。该方法如下:
public ShowViewModel CreateShowViewModel(Show show) {
return new ShowViewModel {
ShowID = show.ShowID,
Title = show.Title,
Episodes = CreateEpisodeViewModels(show.Episodes)
};
}
当它必须实例化剧集时,它会调用一个方法,该方法对每个剧集执行以下功能:
public EpisodeViewModel CreateEpisodeViewModel(Episode episode) {
return new EpisodeViewModel {
ShowID = episode.ShowID,
EpisodeID = episode.EpisodeID,
Title = episode.Title,
Show = CreateShowViewModel(episode.Show)
};
}
这将再次创建节目,等等。这构成循环引用,不是吗?