示例#1
0
        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;
 }
示例#3
0
 /// <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())
 {}
示例#5
0
 /// <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())
 {
 }