Beispiel #1
0
        /// <summary>
        /// XML text reader constructor.
        /// Project site: http://code.google.com/p/nserializer/
        /// </summary>
        /// <param name="typeSeedAssembly">
        /// Seed assembly used for type discovery.
        /// All types used in the XML file must be in this assembly or referenced assemblies.
        /// The reader will recursively search referenced assemblies. Only used if the xmlNodeReader
        /// parameter is null.
        /// </param>
        /// <param name="appObjectRepository">
        /// Optional external repository. Used to provide instances of application scope objects.
        /// </param>
        /// <param name="docObjectRepository">
        /// Optional external repository. Used to provide instances of document scope objects.
        /// </param>
        /// <param name="migrationRulesBuilder">
        /// Optional migration rules builder.
        /// </param>
        public NXmlReader(Assembly typeSeedAssembly, IApplicationObjectsRepository appObjectRepository,
                          IDocumentObjectsRepository docObjectRepository, IMigrationRulesBuilder migrationRulesBuilder,
                          ISubsystemBuilder pluginsBuilder)
        {
            system = new SystemDefinition();

            system.HasInstance(appObjectRepository ?? new NullApplicationObjectRepository())
            .Provides <IApplicationObjectsRepository>();

            system.HasInstance(docObjectRepository ?? new NullDocumentObjectRepository())
            .Provides <IDocumentObjectsRepository>();

            system.HasInstance(migrationRulesBuilder ?? new NullMigrationRulesBuilder())
            .Provides <IMigrationRulesBuilder>();

            new DefaultPluginsBuilder().Build(system);

            if (pluginsBuilder != null)
            {
                system = system.CreateSubsystem(pluginsBuilder);
            }

            system.HasSubsystem(new ReaderBuilder(typeSeedAssembly))
            .Provides <IDataTypeFactory>()
            .Provides <ITypeFinder>();

            system.HasSubsystem(new MetadataReaderBuilder())
            .Provides <MetaDataReader>();
        }
Beispiel #2
0
 public ListReader(IReadObjectsCache readObjects, IDocumentObjectsRepository docObjectRepository,
     IObjectReader objectReader, ITypeFinder typeFinder)
 {
     this.readObjects = readObjects;
     this.docObjectRepository = docObjectRepository;
     this.objectReader = objectReader;
     this.typeFinder = typeFinder;
 }
Beispiel #3
0
 public DictionaryReader(IReadObjectsCache readObjects, IDocumentObjectsRepository docObjectRepository,
                         IObjectReader objectReader, ITypeFinder typeFinder)
 {
     this.readObjects         = readObjects;
     this.docObjectRepository = docObjectRepository;
     this.objectReader        = objectReader;
     this.typeFinder          = typeFinder;
 }
Beispiel #4
0
        protected T ReadXmlText <T>(string xmlText, IApplicationObjectsRepository appObjectRepository,
                                    IDocumentObjectsRepository docObjectRepository,
                                    IMigrationRulesBuilder migrationRulesBuilder)
        {
            var stringReader = new StringReader(xmlText);
            var reader       = new NXmlReader(typeSeedAssembly, appObjectRepository, docObjectRepository,
                                              migrationRulesBuilder, new TestPlugins());

            return(reader.Read <T>(GetStream(xmlText)));
        }
Beispiel #5
0
 public ClassReader(IReadObjectsCache readObjects, IMemberReader memberReader, ITypeFinder typeFinder,
                    IDocumentObjectsRepository docObjectRepository, IBaseTypeMembersReader baseClassMembersReader,
                    IObjectReader objectReader)
 {
     this.readObjects            = readObjects;
     this.memberReader           = memberReader;
     this.typeFinder             = typeFinder;
     this.docObjectRepository    = docObjectRepository;
     this.baseClassMembersReader = baseClassMembersReader;
     this.objectReader           = objectReader;
 }
Beispiel #6
0
 public ClassReader(IReadObjectsCache readObjects, IMemberReader memberReader, ITypeFinder typeFinder,
     IDocumentObjectsRepository docObjectRepository, IBaseTypeMembersReader baseClassMembersReader,
     IObjectReader objectReader)
 {
     this.readObjects = readObjects;
     this.memberReader = memberReader;
     this.typeFinder = typeFinder;
     this.docObjectRepository = docObjectRepository;
     this.baseClassMembersReader = baseClassMembersReader;
     this.objectReader = objectReader;
 }
Beispiel #7
0
        public NodeReader(ITypeFinder typeFinder, IDocumentObjectsRepository docObjectRepository,
            IReadObjectsCache readObjects, IMemberReader memberReader, ILogger logger,
            params IObjectReader[] objectReaders)
        {
            this.logger = logger;
            this.objectReaders = objectReaders;

            var baseTypeReadersList = new List<IBaseTypeMembersReader>
                                          {
                                              new ListReader(readObjects, docObjectRepository, this, typeFinder),
                                              new DictionaryReader(readObjects, docObjectRepository, this, typeFinder),
                                              new ClassReader(readObjects, memberReader, typeFinder, docObjectRepository,
                                                              this, this)
                                          };
            baseTypeReaders = baseTypeReadersList.ToArray();
        }
Beispiel #8
0
        public NodeReader(ITypeFinder typeFinder, IDocumentObjectsRepository docObjectRepository,
                          IReadObjectsCache readObjects, IMemberReader memberReader, ILogger logger,
                          params IObjectReader[] objectReaders)
        {
            this.logger        = logger;
            this.objectReaders = objectReaders;

            var baseTypeReadersList = new List <IBaseTypeMembersReader>
            {
                new ListReader(readObjects, docObjectRepository, this, typeFinder),
                new DictionaryReader(readObjects, docObjectRepository, this, typeFinder),
                new ClassReader(readObjects, memberReader, typeFinder, docObjectRepository,
                                this, this)
            };

            baseTypeReaders = baseTypeReadersList.ToArray();
        }
Beispiel #9
0
 protected T ReadXmlText <T>(string xmlText, IApplicationObjectsRepository appObjectRepository,
                             IDocumentObjectsRepository docObjectRepository)
 {
     return(ReadXmlText <T>(xmlText, appObjectRepository, docObjectRepository, null));
 }
Beispiel #10
0
 /// <summary>
 /// XML text reader constructor.
 /// Project site: http://code.google.com/p/nserializer/
 /// </summary>
 /// <param name="typeSeedAssembly">
 /// Seed assembly used for type discovery.
 /// All types used in the XML file must be in this assembly or referenced assemblies.
 /// The reader will recursively search referenced assemblies. Only used if the xmlNodeReader
 /// parameter is null.
 /// </param>
 /// <param name="appObjectRepository">
 /// Optional external repository. Used to provide instances of application scope objects.
 /// </param>
 /// <param name="docObjectRepository">
 /// Optional external repository. Used to provide instances of document scope objects.
 /// </param>
 public NXmlReader(Assembly typeSeedAssembly, IApplicationObjectsRepository appObjectRepository,
                   IDocumentObjectsRepository docObjectRepository, ISubsystemBuilder pluginsBuilder)
     : this(typeSeedAssembly, appObjectRepository, docObjectRepository, null, pluginsBuilder)
 {
 }