public ISharedDictionaryReader RegisterReader(IStructuredReader reader, MergeMode mergeMode) { if (reader == null) { throw new ArgumentNullException("reader"); } ISharedDictionaryReader rdr = new SharedDictionaryReader(this, reader, mergeMode); reader.ServiceContainer.Add <ISharedDictionaryReader>(rdr, Util.ActionDispose); return(rdr); }
internal void ReadData(SharedDictionaryReader reader) { XmlReader r = reader.StructuredReader.Xml; while (r.MoveToContent() == XmlNodeType.Element && r.Name == "data") { ReadElementObjectInfo info = reader.PreProcessReadInfo(_obj, _pluginId, ReadObjectInfo(reader.StructuredReader.Current)); if (info != null) { if (info.HasError) { if (reader.ErrorCollector != null) { reader.ErrorCollector.Add(info); } } else { _dic.ImportValue(new SharedDictionaryEntry(_obj, _pluginId, info.Key, info.ReadObject), reader.MergeMode); } } } }