/// <summary> /// ContentsItemの保存を行います。 /// </summary> /// <param name="info"></param> public override void SaveContentsItem(XmlContentsItemWriteInfo info) { XmlWriter writer = info.Writer; XmlContentsItem item = info.Item; ContainerXmlContentsItem container = (ContainerXmlContentsItem)item; writer.WriteElementString(container.ItemCountElement, container.Items.Count.ToString()); foreach (XmlContentsItem item1 in container.Items.Values) { XmlContentsItemWriteInfo itemInfo = new XmlContentsItemWriteInfo() { Writer = info.Writer, ItemProvider = info.ItemProvider, Item = item1 }; this.ParentWriter.SaveContentsItem(itemInfo); //this.m_ItemProvider.Save(writer, item1); } }
/// <summary> /// ContentsItemを読み込みます。 /// </summary> /// <param name="item"></param> /// <param name="info"></param> public override void LoadContentsItem(XmlContentsItem item, XmlContentsItemReadInfo info) { XmlTextReader reader = info.Reader; ContainerXmlContentsItem container = (ContainerXmlContentsItem)item; try { reader.ReadStartElement(container.ItemCountElement); int count = int.Parse(reader.ReadString()); reader.Read(); for (int i = 0; i < count; i++) { //XmlContentsItem item1 = container.ItemProvider.Load(reader); XmlContentsItem item1 = this.ParentReader.LoadContentsItem(info); container.Items.Add(item1.Name, item1); } } catch (XmlException) { // ex){ //AppMain.g_AppMain.DebugWrite(ex); throw; } }
/// <summary> /// ContentsItemを読み込みます。 /// </summary> /// <param name="item"></param> /// <param name="info"></param> public override void LoadContentsItem(XmlContentsItem item, XmlContentsItemReadInfo info) { XmlTextReader reader = info.Reader; ContainerXmlContentsItem container = (ContainerXmlContentsItem)item; try { //reader.ReadStartElement(container.ItemCountElement); //int count = int.Parse(reader.ReadString()); //reader.Read(); //NOTE:HaveAttribute=Trueによりreader.Readが必要になったが、Count要素が無くなったため、reader.Readが不要となり、相殺された。 int count = int.Parse(reader.GetAttribute(container.ItemCountElement)); reader.Read(); for (int i = 0; i < count; i++) { //XmlContentsItem item1 = container.ItemProvider.Load(reader); XmlContentsItem item1 = this.ParentReader.LoadContentsItem(info); container.Items.Add(item1.Name, item1); } } catch (XmlException) { // ex){ //AppMain.g_AppMain.DebugWrite(ex); throw; } }