private void LoadObjectDefinitionsFromImportedResources(IEnumerable <KeyValuePair <string, Type> > importedResources) { IDictionary <Type, IObjectDefinitionReader> readerInstanceCache = new Dictionary <Type, IObjectDefinitionReader>(); foreach (KeyValuePair <string, Type> entry in importedResources) { String resource = entry.Key; Type readerClass = entry.Value; if (!readerInstanceCache.ContainsKey(readerClass)) { try { IObjectDefinitionReader readerInstance = (IObjectDefinitionReader)Activator.CreateInstance(readerClass, _registry); readerInstanceCache.Add(readerClass, readerInstance); } catch (Exception) { throw new InvalidOperationException( String.Format("Could not instantiate IObjectDefinitionReader class {0}", readerClass.FullName)); } } IObjectDefinitionReader reader = readerInstanceCache[readerClass]; reader.LoadObjectDefinitions(resource); } }
/// <summary> /// Initializes a new instance of the <see cref="XmlReaderContext"/> class. /// </summary> /// <param name="resource">The resource.</param> /// <param name="reader">The reader.</param> /// <param name="objectDefinitionFactory">The factory to use for creating new <see cref="IObjectDefinition"/> instances.</param> internal XmlReaderContext(IResource resource, IObjectDefinitionReader reader, IObjectDefinitionFactory objectDefinitionFactory) : base(resource) { this.reader = reader; if (reader is XmlObjectDefinitionReader) { this.namespaceParserResolver = ((XmlObjectDefinitionReader) reader).NamespaceParserResolver; } this.objectDefinitionFactory = objectDefinitionFactory; }
/// <summary> /// Initializes a new instance of the <see cref="XmlReaderContext"/> class. /// </summary> /// <param name="resource">The resource.</param> /// <param name="reader">The reader.</param> /// <param name="objectDefinitionFactory">The factory to use for creating new <see cref="IObjectDefinition"/> instances.</param> internal XmlReaderContext(IResource resource, IObjectDefinitionReader reader, IObjectDefinitionFactory objectDefinitionFactory) : base(resource) { this.reader = reader; if (reader is XmlObjectDefinitionReader) { this.namespaceParserResolver = ((XmlObjectDefinitionReader)reader).NamespaceParserResolver; } this.objectDefinitionFactory = objectDefinitionFactory; }
/// <summary> /// Initializes a new instance of the <see cref="XmlReaderContext"/> class. /// </summary> /// <param name="resource">The resource.</param> /// <param name="reader">The reader.</param> public XmlReaderContext(IResource resource, IObjectDefinitionReader reader) : this(resource, reader, new DefaultObjectDefinitionFactory()) {}
/// <summary> /// Initializes a new instance of the <see cref="XmlReaderContext"/> class. /// </summary> /// <param name="resource">The resource.</param> /// <param name="reader">The reader.</param> public XmlReaderContext(IResource resource, IObjectDefinitionReader reader) : this(resource, reader, new DefaultObjectDefinitionFactory()) { }