Esempio n. 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>();
        }
 public IMigrationRules MigrateUsing(IMigrationRulesBuilder rulesBuilder)
 {
     IMigrationRules newRules =
         new MigrationRules(new MigrationDefinition(definition, versionQualifier.StartVersion, logger),
                            versionQualifier.StartVersion, logger);
     rulesBuilder.Build(newRules);
     return rules;
 }
        public IMigrationRules MigrateUsing(IMigrationRulesBuilder rulesBuilder)
        {
            IMigrationRules newRules =
                new MigrationRules(new MigrationDefinition(definition, versionQualifier.StartVersion, logger),
                                   versionQualifier.StartVersion, logger);

            rulesBuilder.Build(newRules);
            return(rules);
        }
Esempio n. 4
0
        protected static string SerializeAsXml(object value, IApplicationObjectsRepository repository,
                                               IMigrationRulesBuilder migrationRulesBuilder)
        {
            var             xmlResult = new StringBuilder();
            IDocumentWriter document  = new NXmlDocumentWriter();
            var             xmlWriter = new NXmlWriter(document, repository, migrationRulesBuilder, new TestPlugins());

            xmlWriter.Write(value, new StringWriter(xmlResult));
            return(xmlResult.ToString());
        }
Esempio n. 5
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)));
        }
Esempio n. 6
0
        public NXmlWriter(IDocumentWriter document, IApplicationObjectsRepository appObjectRepository,
            IMigrationRulesBuilder migrationRulesBuilder, ISubsystemBuilder pluginsBuilder)
        {
            system = new SystemDefinition();

            system.HasInstance(document)
                .Provides<IDocumentWriter>();

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

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

            system.HasInstance(new NullLogger())
                .Provides<ILogger>();

            if (pluginsBuilder != null)
            {
                system = system.CreateSubsystem(pluginsBuilder);
            }
        }
Esempio n. 7
0
        public NXmlWriter(IDocumentWriter document, IApplicationObjectsRepository appObjectRepository,
                          IMigrationRulesBuilder migrationRulesBuilder, ISubsystemBuilder pluginsBuilder)
        {
            system = new SystemDefinition();

            system.HasInstance(document)
            .Provides <IDocumentWriter>();

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

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

            system.HasInstance(new NullLogger())
            .Provides <ILogger>();

            if (pluginsBuilder != null)
            {
                system = system.CreateSubsystem(pluginsBuilder);
            }
        }
        public void AddRules(IMigrationRulesBuilder migrationRulesBuilder)
        {
            IMigrationRules migrationRules = new MigrationRules(this, fromVersion, logger);

            migrationRulesBuilder.Build(migrationRules);
        }
Esempio n. 9
0
 public NXmlWriter(IDocumentWriter document, IApplicationObjectsRepository appObjectRepository,
     IMigrationRulesBuilder migrationRulesBuilder)
     : this(document, appObjectRepository, migrationRulesBuilder, null)
 {
 }
Esempio n. 10
0
 public MigrationDefinitionFactory(Version payloadVersion, IMigrationRulesBuilder rulesBuilder, ILogger logger)
 {
     this.payloadVersion = payloadVersion;
     this.rulesBuilder   = rulesBuilder;
     this.logger         = logger;
 }
Esempio n. 11
0
 public MigrationDefinitionFactory(MetaData metaData, IMigrationRulesBuilder rulesBuilder, ILogger logger)
     : this(metaData.PayloadVersion, rulesBuilder, logger)
 {
 }
 public MigrationDefinitionFactory(Version payloadVersion, IMigrationRulesBuilder rulesBuilder, ILogger logger)
 {
     this.payloadVersion = payloadVersion;
     this.rulesBuilder = rulesBuilder;
     this.logger = logger;
 }
 public MigrationDefinitionFactory(MetaData metaData, IMigrationRulesBuilder rulesBuilder, ILogger logger)
     : this(metaData.PayloadVersion, rulesBuilder, logger)
 {
 }
Esempio n. 14
0
 public NXmlWriter(IDocumentWriter document, IApplicationObjectsRepository appObjectRepository,
                   IMigrationRulesBuilder migrationRulesBuilder)
     : this(document, appObjectRepository, migrationRulesBuilder, null)
 {
 }