コード例 #1
0
 private ConfigurationContainer ReadConfiguration(string file)
 {
     ConfigurationContainer container = new ConfigurationContainer();
     XmlTextReader reader = null;
     try {
         reader = new XmlTextReader(new StreamReader(file));
         while (!reader.EOF) {
             reader.Read();
             if (reader.IsStartElement()) {
                 if (reader.Name == "WaitTime") {
                     reader.MoveToContent();
                     reader.Read();
                     container.WaitTime = int.Parse(reader.Value);
                 }
                 else if (reader.Name == "AutoStart") {
                     reader.MoveToContent();
                     reader.Read();
                     container.AutoStart = bool.Parse(reader.Value);
                 }
                 else if (reader.Name == "MaxRetryCount") {
                     reader.MoveToContent();
                     reader.Read();
                     container.MaxRetryCount = int.Parse(reader.Value);
                 }
             }
         }
         return container;
     }
     catch { return null; }
     finally { if (reader != null) reader.Close(); }
 }
コード例 #2
0
 public void CreateDefaultConfiguration()
 {
     cContainer = new ConfigurationContainer();
     cContainer.AutoStart = true;
     cContainer.MaxRetryCount = 5;
     cContainer.WaitTime = 3000;
 }
コード例 #3
0
        public static SynchronousViewManagerEventDispatcherConfiguationBuilder UseSynchronousViewManangerEventDispatcher(
            this EventDispatcherConfigurationBuilder builder, params IViewManager[] viewManagers)
        {
            var viewManagerConfigurationContainer = new ConfigurationContainer();

            builder.UseEventDispatcher(context =>
            {
                var viewManagerContext = viewManagerConfigurationContainer.CreateContext();

                context.AddChildContext(viewManagerContext);

                var eventDispatcher = new SynchronousViewManagerEventDispatcher(
                    context.Get<IAggregateRootRepository>(),
                    context.Get<IDomainEventSerializer>(),
                    context.Get<IDomainTypeNameMapper>(),
                    viewManagers);

                var contextItems = viewManagerContext.GetOrDefault<IDictionary<string, object>>();
                if (contextItems != null)
                {
                    eventDispatcher.SetContextItems(contextItems);
                }

                return eventDispatcher;
            });

            return new SynchronousViewManagerEventDispatcherConfiguationBuilder(viewManagerConfigurationContainer);
        }
コード例 #4
0
        /// <summary>
        /// Gets the settings container for this platform
        /// </summary>
        /// <param name="container">The settings container.</param>
        /// <returns>The settings container.</returns>
        protected ApplicationDataContainer GetSettingsContainer(ConfigurationContainer container)
        {
            ApplicationDataContainer settings = null;

            lock (_containerCache)
            {
                if (!_containerCache.TryGetValue(container, out settings))
                {
                    switch (container)
                    {
                        case ConfigurationContainer.Local:
                            settings = ApplicationData.Current.LocalSettings;
                            break;

                        case ConfigurationContainer.Roaming:
                            settings = ApplicationData.Current.RoamingSettings;
                            break;

                        default:
                            throw new ArgumentOutOfRangeException("container");
                    }

                    _containerCache[container] = settings;
                }
            }

            return settings;
        }
コード例 #5
0
            public void ReturnsValueForKeyWithSpecialCharacters(ConfigurationContainer container)
            {
                var configurationService = GetConfigurationService();

                configurationService.SetValue(container, "key with special chars", "myValue");

                Assert.AreEqual("myValue", configurationService.GetValue(container, "key with special chars", "nonExistingValue"));
            }
コード例 #6
0
            public void ReturnsExistingValue(ConfigurationContainer container)
            {
                var configurationService = GetConfigurationService();

                configurationService.SetValue(container, "myKey", "myValue");

                Assert.AreEqual("myValue", configurationService.GetValue<string>(container, "myKey"));
            }
コード例 #7
0
 public void LoadConfiguration()
 {
     try{
         string configFile = SharedBO.GetConfigurationFile();
         //cContainer = MoreXmlSerializer.Deserialize<ConfigurationContainer>(configFile);
         cContainer = ReadConfiguration(configFile);
     }catch {
         CreateDefaultConfiguration();
     }
 }
コード例 #8
0
ファイル: Issue197Tests.cs プロジェクト: wtf3505/home
        void VerifyProperties()
        {
            var buttonEx2 = new ButtonEx2 {
                MyProperty = 1.0
            };
            var serializer = new ConfigurationContainer().Extend(FallbackSerializationExtension.Default)
                             .Type <ButtonExBase2>()
                             .Member(x => x.MyProperty)
                             .Ignore()
                             .Create()
                             .ForTesting();

            serializer.Cycle(buttonEx2)
            .Should()
            .BeEquivalentTo(buttonEx2);
        }
コード例 #9
0
            public void IsNotInvokedDuringSetValueMethodForEqualValues(ConfigurationContainer container)
            {
                var configurationService = GetConfigurationService();
                var invoked = false;

                configurationService.SetValue(container, "key", "value");

                configurationService.ConfigurationChanged += (sender, e) =>
                {
                    invoked = true;
                };

                configurationService.SetValue(container, "key", "value");

                Assert.IsFalse(invoked);
            }
コード例 #10
0
        public void ShouldPreserveNullStringValueIfDefaultIsNotNull()
        {
            var config = new ConfigurationContainer();

            config.Emit(EmitBehaviors.WhenModified);
            var serializer = config.Create();

            var xml = serializer.Serialize(new ClassWithDefaultString()
            {
                Name = null, SubNode = null
            });
            var deserialized = serializer.Deserialize <ClassWithDefaultString>(xml);

            deserialized.Name.Should()
            .BeNull();
        }
コード例 #11
0
        public static void RunSimpleConfig()
        {
            Program.PrintHeader("Serialization reference object");

// Configuration

            IExtendedXmlSerializer serializer = new ConfigurationContainer().UseEncryptionAlgorithm(new CustomEncryption())
                                                .ConfigureType <Person>()
                                                .Member(p => p.Password)
                                                .Encrypt()
                                                .Create();

// EndConfiguration

            Run(serializer);
        }
コード例 #12
0
        public void VerifyTable()
        {
            var serializer = new ConfigurationContainer().Type <Key>()
                             .Register()
                             .Converter()
                             .Using(KeyConverter.Default)
                             .UseAutoFormatting()
                             .Create()
                             .ForTesting();

            var instance = new KeyDictionary <string> {
                { 6776, "Hello World!" }
            };

            serializer.Cycle(instance).Should().BeEquivalentTo(instance);
        }
コード例 #13
0
        void Verify()
        {
            var support = new ConfigurationContainer().EnableParameterizedContentWithPropertyAssignments()
                          .Create()
                          .ForTesting();

            var instance = new DataHolder(13);

            instance.Lenght = 13;
            instance.Data.Add(new Data(1.23f));
            instance.Data.Add(new Data(3.27f));
            instance.Data.Add(new Data(5.14f));
            instance.Data.Add(new Data(7.29f));

            support.Cycle(instance).ShouldBeEquivalentTo(instance);
        }
コード例 #14
0
 private static void WithModifier(ConfigurationContainer configuration)
 {
     while (!CancellationRequested)
     {
         if (Game.IsKeyDownRightNow(configuration.ForcePursuitModifierKey))
         {
             if (Game.IsKeyDown(configuration.ForcePursuitKey))
             {
                 Extensions.LogTrivial($"Modifier {configuration.ForcePursuitModifierKey} and key {configuration.ForcePursuitKey} pressed");
                 PursuitOnTheFly.TryForce(configuration);
             }
         }
         GameFiber.Yield();
     }
     Extensions.LogTrivial($"Cancellation requested.");
 }
コード例 #15
0
ファイル: Game.cs プロジェクト: CupWorks/GGJ2016
 public Game(IInput input, IOutput output, ISoundManager soundManager, Stream defaultsStream, Stream audioStream, Stream commandsStream, Stream storyStepsStream)
 {
     Input = input;
     Input.OnTextReceived += InputOnOnTextReceived;
     Output = output;
     SoundManager = soundManager;
     DefaultsContainer = new ConfigurationContainer<Defaults>(defaultsStream);
     DefaultsContainer.ReadFromStream();
     AudioListContainer = new ConfigurationListContainer<Sound>(audioStream);
     AudioListContainer.ReadFromStream();
     CommandListContainer = new ConfigurationListContainer<Command>(commandsStream);
     CommandListContainer.ReadFromStream();
     DefaultCommands = CommandListContainer.Get(c => c.IsDefault);
     StoryStepListContainer = new ConfigurationListContainer<StoryStep>(storyStepsStream);
     StoryStepListContainer.ReadFromStream();
 }
コード例 #16
0
        public void Execute(object parameter)
        {
// Example
            IExtendedXmlSerializer serializer = new ConfigurationContainer().EnableAllConstructors()
                                                .Create();
            SubjectByFactory subject  = SubjectByFactory.Create("Hello World!");
            string           contents = serializer.Serialize(subject);
// ...
// EndExample

            string data = serializer.Serialize(new XmlWriterSettings {
                Indent = true
            }, subject);

            File.WriteAllText(@"bin\Extensibility.PrivateConstructors.xml", data);
        }
コード例 #17
0
        public void Verify()
        {
            var serializer = new ConfigurationContainer().EnableParameterizedContent()
                             .ConfigureType <Plane>()
                             .Member(x => x.Rows).Ignore()
                             .Member(x => x.Length).Attribute()
                             .Create()
                             .ForTesting();
            var subject = new Plane(4.33);

            serializer.Cycle(subject)
            .ShouldBeEquivalentTo(subject);
            serializer.Serialize(subject)
            .Should()
            .Be(@"<?xml version=""1.0"" encoding=""utf-8""?><Issue146Tests-Plane Length=""4.33"" xmlns=""clr-namespace:ExtendedXmlSerializer.Tests.ReportedIssues;assembly=ExtendedXmlSerializer.Tests"" />");
        }
コード例 #18
0
        public void CanSaveAndLoadConfigurationTest()
        {
            EntitiesAccessor target = EntitiesAccessor.Instance;

            string filename = "config.xml";

            ConfigurationContainer cc = new ConfigurationContainer();
            ConfigurationContainer actual;

            Assert.IsTrue(target.SaveConfiguration(filename, cc), "Save function for SaveConfiguration did not return true");
            Assert.IsTrue(System.IO.File.Exists(filename), "File {0} did not exists while it should be wrtten.", filename);

            actual = target.LoadConfiguration(filename);

            Assert.IsNotNull(actual, "Could not read file {0}.", filename);
        }
コード例 #19
0
ファイル: Issue261Tests.cs プロジェクト: wtf3505/home
        void VerifyElement()
        {
            var container = new ConfigurationContainer().EnableImplicitTypingFromNested <Issue261Tests>()
                            .EnableClassicSchemaTyping()
                            .Create()
                            .ForTesting();
            var content =
                @"<?xml version=""1.0"" encoding=""utf-8""?><List xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:exs=""https://extendedxmlserializer.github.io/v2"" exs:arguments=""ModelObject"" xmlns=""https://extendedxmlserializer.github.io/system""><Capacity>4</Capacity><Issue261Tests-ModelObject xsi:type=""Issue261Tests-Project"" /></List>";

            container.Deserialize <List <Entity> >(content)
            .Should()
            .HaveCount(1)
            .And.Subject.Only()
            .Should()
            .BeOfType <Project>();
        }
コード例 #20
0
        public void Verify()
        {
            var serializer = new ConfigurationContainer().Type <Subject>()
                             .Member(x => x.NoMessage)
                             .Ignore()
                             .Create();

            var instance = new Subject {
                Message = "Hello World!", NoMessage = "Ignored"
            };

            var cycled = serializer.Cycle(instance);

            cycled.NoMessage.Should().BeNullOrEmpty();
            cycled.Message.Should().Be(instance.Message);
        }
コード例 #21
0
        public void Execute(object parameter)
        {
// Example
            var serializer = new ConfigurationContainer().EnableParameterizedContent()
                             .Create();
            var subject  = new ParameterizedSubject("Hello World!", 123, DateTime.Now);
            var contents = serializer.Serialize(subject);
// ...
// EndExample

            var data = serializer.Serialize(new XmlWriterSettings {
                Indent = true
            }, subject);

            File.WriteAllText(@"bin\Extensibility.ParameterizedContent.xml", data);
        }
コード例 #22
0
        public void ShouldPreserveNullObjectValueIfEmitWhenReturnsTrue()
        {
            var serializer = new ConfigurationContainer().Emit(EmitBehaviors.Assigned)
                             .ConfigureType <ClassWithDefaultString>()
                             .Member(x => x.SubNode)
                             .EmitWhen(x => true)
                             .Create();

            string xml = serializer.Serialize(new ClassWithDefaultString()
            {
                Name = null, SubNode = null
            });
            var deserialized = serializer.Deserialize <ClassWithDefaultString>(xml);

            deserialized.SubNode.Should().BeNull();
        }
コード例 #23
0
        /// <summary>
        /// Saves the configuration.
        /// </summary>
        /// <param name="fileName">The fileName.</param>
        /// <param name="configContainer">The configuration container.</param>
        /// <returns></returns>
        public bool SaveConfiguration(string fileName, ConfigurationContainer configContainer)
        {
            if (configContainer == null)
            {
                throw new ArgumentNullException("configContainer");
            }

            if (string.IsNullOrEmpty(fileName))
            {
                throw new ArgumentNullException("fileName");
            }

            ObjectXMLSerializer <ConfigurationContainer> .Save(configContainer, fileName, SerializedFormat.Document);

            return(true);
        }
コード例 #24
0
        void Verify()
        {
            var serializer = new ConfigurationContainer().EnableMemberExceptionHandling()
                             .Create()
                             .ForTesting();

            serializer.Invoking(x => x.Serialize(new Subject()))
            .ShouldThrowExactly <InvalidOperationException>()
            .WithMessage("An exception was encountered while serializing member 'ExtendedXmlSerializer.Tests.ReportedIssues.Issue214Tests+Subject.Message'.  Provided instance is 'ExtendedXmlSerializer.Tests.ReportedIssues.Issue214Tests+Subject'.")
            .WithInnerException <InvalidOperationException>();

            serializer.Invoking(x => x.Deserialize <Subject>(@"<?xml version=""1.0"" encoding=""utf-8""?><Issue214Tests-Subject xmlns=""clr-namespace:ExtendedXmlSerializer.Tests.ReportedIssues;assembly=ExtendedXmlSerializer.Tests""><Message>Hello World!</Message></Issue214Tests-Subject>"))
            .ShouldThrowExactly <InvalidOperationException>()
            .WithMessage("An exception was encountered while deserializing member 'ExtendedXmlSerializer.Tests.ReportedIssues.Issue214Tests+Subject.Message'.")
            .WithInnerException <XmlException>();
        }
コード例 #25
0
ファイル: AuthFilter.cs プロジェクト: rhw1111/DCEM
        //执行之前处理
        public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            #region 通过请求token获取当前用户登录信息
            var coreConfiguration = ConfigurationContainer.Get <BaseConfiguration>(ConfigurationNames.Application);
            if (coreConfiguration.DyCRMSetting != null)
            {
                var dyCRMSetting = coreConfiguration.DyCRMSetting;
                _baseUrl = $"{dyCRMSetting.CrmUrl}/api/data/v{dyCRMSetting.CrmApiVersion}";
            }
            IHttpContextAccessor _accessor = new HttpContextAccessor();
            var token = _accessor.HttpContext?.Request.Headers["token"].ToString();
            if (!string.IsNullOrEmpty(token))
            {
                var    helper   = DIContainerContainer.Get <AdfsEndpointRepositoryHelper>();
                string userName = "";
                if (token.Contains("ADAUTH:"))
                {
                    userName = token.Split(':')[1];
                }
                else
                {
                    var endpoint = await helper.QueryByName("Main");

                    var claims = await endpoint.ValidateJWT(token, new string[] { _baseUrl });

                    userName = claims.FindFirst(System.Security.Claims.ClaimTypes.Name).Value;
                }

                if (!string.IsNullOrEmpty(userName))
                {
                    #region 缓存用户登录信息
                    var logioninfo = await helper.GetLoginInfo(userName, token);

                    if (logioninfo != null)
                    {
                        ContextContainer.SetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo, logioninfo);
                    }
                    #endregion
                }
            }
            else
            {
                //throw new Exception("接口鉴权失败");
            }
            #endregion
            await next();
        }
コード例 #26
0
        public void List()
        {
            var container = new ConfigurationContainer();

            container.Type <TestClassReference>()
            .EnableReferences(x => x.Id);
            var support = new SerializationSupport(container);

            var parent = new TestClassReference {
                Id = 1
            };
            var other = new TestClassReference {
                Id = 2, ObjectA = parent, ReferenceToObjectA = parent
            };

            var instance = new List <IReference>
            {
                new TestClassReference {
                    Id = 3, ObjectA = parent, ReferenceToObjectA = parent
                },
                new TestClassReference {
                    Id = 4, ObjectA = other, ReferenceToObjectA = other
                },
                other,
                parent
            };

            var actual = support.Assert(instance,
                                        @"<?xml version=""1.0"" encoding=""utf-8""?><List xmlns:ns1=""clr-namespace:ExtendedXmlSerializer.Tests.TestObject;assembly=ExtendedXmlSerializer.Tests"" xmlns:exs=""https://extendedxmlserializer.github.io/v2"" exs:arguments=""ns1:IReference"" xmlns=""https://extendedxmlserializer.github.io/system""><Capacity>4</Capacity><ns1:TestClassReference Id=""3""><ObjectA exs:type=""ns1:TestClassReference"" Id=""1"" /><ReferenceToObjectA exs:type=""ns1:TestClassReference"" exs:entity=""1"" /></ns1:TestClassReference><ns1:TestClassReference Id=""4""><ObjectA exs:type=""ns1:TestClassReference"" Id=""2""><ObjectA exs:type=""ns1:TestClassReference"" exs:entity=""1"" /><ReferenceToObjectA exs:type=""ns1:TestClassReference"" exs:entity=""1"" /></ObjectA><ReferenceToObjectA exs:type=""ns1:TestClassReference"" exs:entity=""2"" /></ns1:TestClassReference><ns1:TestClassReference exs:entity=""2"" /><ns1:TestClassReference exs:entity=""1"" /></List>");

            Assert.Same(actual[0]
                        .To <TestClassReference>()
                        .ObjectA, actual[0]
                        .To <TestClassReference>()
                        .ReferenceToObjectA);
            Assert.Same(actual[1]
                        .To <TestClassReference>()
                        .ObjectA, actual[1]
                        .To <TestClassReference>()
                        .ReferenceToObjectA);
            Assert.Same(actual[2], actual[1]
                        .To <TestClassReference>()
                        .ObjectA);
            Assert.Same(actual[3], actual[0]
                        .To <TestClassReference>()
                        .ObjectA);
        }
コード例 #27
0
        static TrackerStrategyRepository()
        {
            ConfigurationContainer.RegisterJsonListener <string[]>("TrackerStrategyData.json", (names) =>
            {
                var trackerStrategyList = new Dictionary <string, TrackerStrategy>();

                foreach (var item in names)
                {
                    trackerStrategyList.Add(item, new TrackerStrategy()
                    {
                        ID   = Guid.NewGuid(),
                        Name = item
                    });
                }
                _trackerStrategyList = trackerStrategyList;
            });
        }
コード例 #28
0
        public void Execute(object parameter)
        {
// Type
            var serializer = new ConfigurationContainer().ConfigureType <Subject>()
                             .Name("ModifiedSubject")
                             .Create();
// EndType

            var subject = new Subject {
                Count = 6776, Message = "Hello World!"
            };
            var contents = serializer.Serialize(new XmlWriterSettings {
                Indent = true
            }, subject);

            File.WriteAllText(@"bin\Introduction.Type.xml", contents);
        }
コード例 #29
0
        /// <summary>
        /// Determines whether the specified key value exists in the configuration.
        /// </summary>
        /// <param name="container">The container.</param>
        /// <param name="key">The key.</param>
        /// <returns><c>true</c> if the value exists, <c>false</c> otherwise.</returns>
        protected virtual bool ValueExists(ConfigurationContainer container, string key)
        {
#if PCL || (XAMARIN && !ANDROID)
            throw Log.ErrorAndCreateException <NotSupportedInPlatformException>("No configuration objects available");
#elif ANDROID
            return(_preferences.Contains(key));
#elif NETFX_CORE
            var settings = GetSettingsContainer(container);
            return(settings.Values.ContainsKey(key));
#elif WINDOWS_PHONE || SILVERLIGHT
            var settings = IsolatedStorageSettings.ApplicationSettings;
            return(settings.Contains(key));
#else
            var settings = GetSettingsContainer(container);
            return(settings.IsConfigurationKeyAvailable(key));
#endif
        }
コード例 #30
0
        public void Verify()
        {
            var serializer = new ConfigurationContainer().UseAutoFormatting()
                             .UseOptimizedNamespaces()
                             .EnableImplicitTyping(typeof(MainDTO),
                                                   typeof(SubDTO), typeof(SubSubDTO))
                             .Type <SubSubDTO>()
                             .EnableReferences(definition => definition.Id)
                             .Create()
                             .ForTesting();

            var instance = new MainDTO();
            var cycled   = serializer.Cycle(instance);

            cycled.Sub1.SubSub1.Should().BeSameAs(cycled.Sub2.SubSub1);
            cycled.Sub1.SubSub1.Should().BeSameAs(cycled.Sub3.SubSub1);
        }
コード例 #31
0
        public void TestMethod1()
        {
            var cfg    = @"<cfg name='test'>
   <entities>
      <add name='entity'>
         <rows>
            <add key='1' json='{ ""string"": ""problematic"", ""number"": 1, ""array"": [2,3,4], ""object"" : { ""sixPointFour"": 6.4} }' />
         </rows>
         <fields>
            <add name='key' type='int' primary-key='true' />
            <add name='json' length='max' />
         </fields>
         <calculated-fields>
            <add name='string' t='copy(json).jsonpath($.string)' />
            <add name='number' type='int' t='copy(json).jsonpath($.number)' />
            <add name='array' t='copy(json).jsonpath($.array)' />
            <add name='numberInArray' type='int' t='copy(json).jsonpath($.array[2])' />
            <add name='sixPoint4' type='decimal' t='copy(json).jsonpath($.object.sixPointFour)' />
            <add name='filter' t='copy(json).jsonpath($.array[?(@!=2)])' />
         </calculated-fields>
      </add>
   </entities>
</cfg>";
            var logger = new ConsoleLogger(LogLevel.Debug);

            using (var outer = new ConfigurationContainer(new JsonTransformModule()).CreateScope(cfg, logger)) {
                var process = outer.Resolve <Process>();
                using (var inner = new Container(new JsonTransformModule()).CreateScope(process, logger)) {
                    var    controller = inner.Resolve <IProcessController>();
                    IRow[] output     = controller.Read().ToArray();

                    Assert.AreEqual(1, output.Length);

                    Assert.AreEqual("problematic", output[0][process.Entities[0].CalculatedFields[0]]);
                    Assert.AreEqual(1, output[0][process.Entities[0].CalculatedFields[1]]);
                    Assert.AreEqual(@"[
  2,
  3,
  4
]", output[0][process.Entities[0].CalculatedFields[2]]);
                    Assert.AreEqual(4, output[0][process.Entities[0].CalculatedFields[3]]);
                    Assert.AreEqual(6.4M, output[0][process.Entities[0].CalculatedFields[4]]);
                    Assert.AreEqual("3", output[0][process.Entities[0].CalculatedFields[5]]);
                }
            }
        }
コード例 #32
0
        /// <summary>
        /// Gets the value from the store.
        /// </summary>
        /// <param name="container">The container.</param>
        /// <param name="key">The key.</param>
        /// <returns>The value.</returns>
        protected virtual string GetValueFromStore(ConfigurationContainer container, string key)
        {
#if PCL || (XAMARIN && !ANDROID)
            throw Log.ErrorAndCreateException <NotSupportedInPlatformException>("No configuration objects available");
#elif ANDROID
            return(_preferences.GetString(key, null));
#elif NETFX_CORE
            var settings = GetSettingsContainer(container);
            return((string)settings.Values[key]);
#elif WINDOWS_PHONE || SILVERLIGHT
            var settings = IsolatedStorageSettings.ApplicationSettings;
            return((string)settings[key]);
#else
            var settings = GetSettingsContainer(container);
            return(settings.GetConfigurationValue <string>(key));
#endif
        }
コード例 #33
0
        public void Verify()
        {
            var instance = new DecoratedImage(null);

            var serializer = new ConfigurationContainer().EnableParameterizedContentWithPropertyAssignments()
                             .UseOptimizedNamespaces()
                             //
                             .Type <DecoratedImage>()
                             .Register()
                             .Serializer()
                             .Of <ImageSerializer>()
                             //
                             .Create()
                             .ForTesting();

            serializer.Assert(instance, @"<?xml version=""1.0"" encoding=""utf-8""?><Issue458Tests-DecoratedImage xmlns=""clr-namespace:ExtendedXmlSerializer.Tests.ReportedIssues;assembly=ExtendedXmlSerializer.Tests.ReportedIssues"" />");
        }
コード例 #34
0
ファイル: Create.cs プロジェクト: wtf3505/home
        public void Execute(object parameter)
        {
// Create
            IExtendedXmlSerializer serializer = new ConfigurationContainer()
                                                // Configure...
                                                .Create();
// EndCreate

            Subject subject = new Subject {
                Count = 6776, Message = "Hello World!"
            };
            string contents = serializer.Serialize(new XmlWriterSettings {
                Indent = true
            }, subject);

            File.WriteAllText(@"bin\Introduction.xml", contents);
        }
コード例 #35
0
        public void VerifyVerbatimAttribute()
        {
            var serializer = new ConfigurationContainer().ConfigureType <SubjectWithAttribute>()
                             .Create()
                             .ForTesting();

            var subject = new SubjectWithAttribute {
                Message = @"Hello??? (<, &, ', and "")"
            };
            var serialize = serializer.Serialize(subject);

            serialize.Should()
            .Be(@"<?xml version=""1.0"" encoding=""utf-8""?><Issue150Tests-SubjectWithAttribute xmlns=""clr-namespace:ExtendedXmlSerializer.Tests.ReportedIssues;assembly=ExtendedXmlSerializer.Tests""><Message><![CDATA[Hello??? (<, &, ', and "")]]></Message></Issue150Tests-SubjectWithAttribute>");

            serializer.Deserialize <SubjectWithAttribute>(serialize)
            .ShouldBeEquivalentTo(subject);
        }
コード例 #36
0
        public void BasicTests()
        {
            var xml    = $@"
<add name='TestProcess' read-only='false'>
    <entities>
        <add name='TestData'>
            <rows>
                <add vin='11111111111111111' />
                <add vin='2LMDJ6JK0FBL33226' />
                <add vin='JM1BK323071624570' />
            </rows>
            <fields>
                <add name='vin' primary-key='true' />
            </fields>
            <calculated-fields>
                <add name='valid' type='bool' t='copy(vin).vinisvalid()' />
                <add name='year' type='short' t='copy(vin).vingetmodelyear()' />
                <add name='make' t='copy(vin).vingetworldmanufacturer()' />
            </calculated-fields>
        </add>
    </entities>

</add>";
            var logger = new ConsoleLogger(LogLevel.Debug);

            using (var outer = new ConfigurationContainer(new VinModule()).CreateScope(xml, logger)) {
                var process = outer.Resolve <Process>();
                using (var inner = new Container(new VinModule()).CreateScope(process, logger)) {
                    var controller = inner.Resolve <IProcessController>();
                    controller.Execute();
                    var rows = process.Entities.First().Rows;

                    Assert.AreEqual(true, rows[0]["valid"]);
                    Assert.AreEqual(true, rows[1]["valid"]);
                    Assert.AreEqual(false, rows[2]["valid"]);

                    Assert.AreEqual((short)2001, rows[0]["year"]);
                    Assert.AreEqual((short)2015, rows[1]["year"]);
                    Assert.AreEqual((short)2007, rows[2]["year"]);

                    Assert.AreEqual("", rows[0]["make"]);
                    Assert.AreEqual("Lincoln", rows[1]["make"]);
                    Assert.AreEqual("Mazda", rows[2]["make"]);
                }
            }
        }
コード例 #37
0
        void GenericSimpleValue()
        {
            var serializer = new ConfigurationContainer()
                             .Create()
                             .ForTesting();

            var singleValue = new ClassWithGeneric <int>();

            singleValue.Description = "testtest123";

            var result = serializer.Serialize(singleValue);

            var deserializedValue = serializer.Deserialize <ClassWithGeneric <int> >(result);

            deserializedValue.Description.Should()
            .Be("testtest123");
        }
コード例 #38
0
        public void VerifyAlternate()
        {
            var serializer = new ConfigurationContainer().UseAutoFormatting()
                             .EnableImmutableTypes()
                             .EnableParameterizedContentWithPropertyAssignments()
                             .Create();
            var settings = new XmlWriterSettings {
                Indent = true
            };

            var instance = new U("ciao", null);
            var xml      = serializer.Serialize(settings, instance);

            var deserialized = serializer.Deserialize <U>(xml);

            deserialized.Member.Should().BeNull();
        }
コード例 #39
0
        /// <summary>
        /// Gets the settings container for this platform
        /// </summary>
        /// <param name="container">The settings container.</param>
        /// <returns>The settings container.</returns>
        protected DynamicConfiguration GetSettingsContainer(ConfigurationContainer container)
        {
            DynamicConfiguration settings = null;

            switch (container)
            {
                case ConfigurationContainer.Local:
                    settings = _localConfiguration;
                    break;

                case ConfigurationContainer.Roaming:
                    settings = _roamingConfiguration;
                    break;

                default:
                    throw new ArgumentOutOfRangeException("container");
            }

            return settings;
        }
コード例 #40
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ConfigurationChangedEventArgs" /> class.
 /// </summary>
 /// <param name="container">The container.</param>
 /// <param name="key">The key.</param>
 /// <param name="newValue">The new value.</param>
 public ConfigurationChangedEventArgs(ConfigurationContainer container, string key, object newValue)
 {
     Container = container;
     Key = key;
     NewValue = newValue;
 }
コード例 #41
0
            public void ThrowsArgumentExceptionForEmptyKey(ConfigurationContainer container)
            {
                var configurationService = GetConfigurationService();

                ExceptionTester.CallMethodAndExpectException<ArgumentException>(() => configurationService.SetValue(container, string.Empty, "value"));
            }
コード例 #42
0
            public void ReturnsDefaultValueForNonExistingValue(ConfigurationContainer container)
            {
                var configurationService = GetConfigurationService();

                Assert.AreEqual("nonExistingValue", configurationService.GetValue(container, "nonExistingKey", "nonExistingValue"));
            }
コード例 #43
0
 public ConsoleContainer(string configFile, bool isRemote)
 {
     configuration = CreateConfiguration(configFile);
     server = CreateServer(isRemote);
 }
コード例 #44
0
 protected override void DoSetUp()
 {
     _container = new ConfigurationContainer();
 }
コード例 #45
0
            public void SetsValueCorrectlyForKeyWithSpecialCharacters(ConfigurationContainer container)
            {
                var configurationService = GetConfigurationService();

                configurationService.SetValue(container, "key with special chars", "myValue");

                Assert.AreEqual("myValue", configurationService.GetValue<string>(container, "key with special chars"));
            }
コード例 #46
0
            public void SetsValueCorrectly(ConfigurationContainer container)
            {
                var configurationService = GetConfigurationService();
 
                configurationService.SetValue(container, "myKey", "myValue");

                Assert.AreEqual("myValue", configurationService.GetValue<string>(container, "myKey"));
            }
コード例 #47
0
        private void WriteConfiguration(ConfigurationContainer container, string file)
        {
            StringBuilder sb = new StringBuilder();
            sb.AppendLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
            sb.AppendLine("<ConfigurationContainer xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">");
            sb.AppendFormat("<WaitTime>{0}</WaitTime>\n", container.WaitTime);
            sb.AppendFormat("<AutoStart>{0}</AutoStart>\n", container.AutoStart);
            sb.AppendFormat("<MaxRetryCount>{0}</MaxRetryCount>\n", container.MaxRetryCount);
            sb.AppendLine("</ConfigurationContainer>");

            System.IO.StreamWriter sw = null;
            try {
                sw = new System.IO.StreamWriter(file);
                sw.Write(sb.ToString());
            }
            catch { }
            finally { if (sw != null) sw.Close(); }
        }
コード例 #48
0
            public void ThrowsArgumentExceptionForNullKey(ConfigurationContainer container)
            {
                var configurationService = GetConfigurationService();

                ExceptionTester.CallMethodAndExpectException<ArgumentException>(() => configurationService.GetValue<string>(container, null));
            }
コード例 #49
0
            public void IsInvokedDuringSetValueMethod(ConfigurationContainer container)
            {
                var configurationService = GetConfigurationService();

                bool invoked = false;
                ConfigurationContainer receivedContainer = ConfigurationContainer.Roaming;
                string receivedKey = null;
                object receivedValue = null;

                configurationService.ConfigurationChanged += (sender, e) =>
                {
                    invoked = true;
                    receivedContainer = e.Container;
                    receivedKey = e.Key;
                    receivedValue = e.NewValue;
                };

                configurationService.SetValue(container, "key", "value");

                Assert.IsTrue(invoked);
                Assert.AreEqual(container, receivedContainer);
                Assert.AreEqual("key", receivedKey);
                Assert.AreEqual("value", (string)receivedValue);
            }