コード例 #1
0
        public void CanSaveConfigurationSectionToFile()
        {
            FileConfigurationSource source = new FileConfigurationSource(file, false);
            source.Save(InstrumentationConfigurationSection.SectionName, CreateInstrumentationSection());

            ValidateConfiguration(file);
        }
コード例 #2
0
        public void TryToSaveWithAFileConfigurationSaveParameter()
        {
            FileConfigurationSource source = new FileConfigurationSource(file, false);
            source.Add(InstrumentationConfigurationSection.SectionName, CreateInstrumentationSection());

            ValidateConfiguration(file);
        }
コード例 #3
0
        public static ValidationResults Validate(object objectToValidate)
        {
            FileConfigurationSource fileConfigurationsource = new FileConfigurationSource(validationFilePath);
            Validator validator = ValidationFactory.CreateValidator(objectToValidate.GetType(), objectToValidate.GetType().Name, fileConfigurationsource);

            var validationResult = validator.Validate(objectToValidate);
            return validationResult;
        }
コード例 #4
0
        public void then_attributes_with_omitted_values_are_overridden()
        {
            FileConfigurationSource source = new FileConfigurationSource(TargetFile);
            LoggingSettings settings = (LoggingSettings)source.GetSection(LoggingSettings.SectionName);

            Assert.IsFalse(settings.RevertImpersonation);
            Assert.IsFalse(settings.LogWarningWhenNoCategoriesMatch);
        }
コード例 #5
0
        public static List<ValidatorData> ExtractRules(this Type targetType, string propertyName)
        {
            FileConfigurationSource fileConfigurationsource = new FileConfigurationSource(validationFilePath);
            ValidationSettings settings = (ValidationSettings)fileConfigurationsource.GetSection("validation");

            ValidatedTypeReference rules = settings.Types.FirstOrDefault(item => item.Name.Equals(targetType.FullName));

            return rules.Rulesets.SelectMany(item => item.Properties).Where(item => item.Name.Equals(propertyName)).SelectMany(item => item.Validators).ToList();
        }
        protected void ProtectSection(FileConfigurationSource source, string sectionName, string protectionProvider)
        {
            ConfigurationSectionCloner cloner = new ConfigurationSectionCloner();
            var section = source.GetSection(sectionName);
            section = cloner.Clone(section);

            source.Remove(sectionName);
            source.Add(sectionName, section, protectionProvider);
        }
        protected override void Arrange()
        {
            base.Arrange();

            using (var source = new FileConfigurationSource(mainConfigurationFile))
            {
                ProtectSection(source, LoggingSettings.SectionName, "RsaProtectedConfigurationProvider");
            }
        }
コード例 #8
0
        protected override void Arrange()
        {
            base.Arrange();

            var configurationFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "unity.config");
            var source = new FileConfigurationSource(configurationFilePath);
            sectionToClone = (UnityConfigurationSection)source.GetSection("unity");

            //editableSection = (UnityConfigurationSection)base.UnitySectionViewModel.ConfigurationElement;
            //editableSection.TypeAliases.Add(new AliasElement("alias1", typeof(int))); 
            //editableSection.TypeAliases.Add(new AliasElement("alias2", typeof(string)));

            //editableSection.Containers.Add(new ContainerElement()
            //{
            //    Name = "cloned",
            //    Registrations = {{
            //    new RegisterElement
            //    {
            //        Name = "Registration1",
            //        TypeName = "RegistrationTypeName",
            //        InjectionMembers = {{
            //                            new PropertyElement 
            //                            {
            //                                Name = "Property1",
            //                                Value = new ValueElement
            //                                {
            //                                    Value = "PropertyValue"
            //                                }
            //                            }
            //                         },
            //                         {
            //                             new ConstructorElement 
            //                             {
            //                                 Parameters = 
            //                                 {{
            //                                      new ParameterElement
            //                                      {
            //                                          Name = "array",
            //                                          Value = new ArrayElement
            //                                          {
            //                                              TypeName = "t",
            //                                              Values = {{new ArrayElement()},{new ValueElement
            //                                                                             {
            //                                                                                 Value = "v"
            //                                                                             }}}
            //                                          }
            //                                      }
            //                                 }}
            //                             }
            //                         }}
            //    }}}
            //});


            cloner = new ConfigurationSectionCloner();
        }
コード例 #9
0
        public void then_file_has_overridden_values()
        {
            FileConfigurationSource source = new FileConfigurationSource(TargetFile);
            LoggingSettings settings = (LoggingSettings)source.GetSection(LoggingSettings.SectionName);
            FormattedEventLogTraceListenerData traceListener = (FormattedEventLogTraceListenerData)settings.TraceListeners.Get("Event Log Listener");

            Assert.AreEqual(TraceOptions.ProcessId, traceListener.TraceOutputOptions);
            Assert.AreEqual("overridden source", traceListener.Source);
            Assert.AreEqual("overridden machine", traceListener.MachineName);
        }
コード例 #10
0
        public void then_file_has_overridden_values()
        {
            FileConfigurationSource source = new FileConfigurationSource(TargetFile);
            CacheManagerSettings settings = (CacheManagerSettings)source.GetSection(CacheManagerSettings.SectionName);
            CacheManagerData cacheManager = (CacheManagerData)settings.CacheManagers.Get("Cache Manager");

            Assert.AreEqual(1, cacheManager.MaximumElementsInCacheBeforeScavenging);
            Assert.AreEqual(1, cacheManager.NumberToRemoveWhenScavenging);
            Assert.AreEqual(1, cacheManager.ExpirationPollFrequencyInSeconds);
        }
        protected override void Act()
        {
            var resources = new ResourceHelper<ConfigFileLocator>();
            var deltaConfigurationFile = resources.DumpResourceFileToDisk("override_lab_protection_dpapi.dconfig");
            
            ConfigurationMerger configurationMerger = new ConfigurationMerger(mainConfigurationFile, deltaConfigurationFile);
            configurationMerger.MergeConfiguration(mergedConfigurationFile);

            mergedConfigurationFileSource = new FileConfigurationSource(mergedConfigurationFile);
        }
コード例 #12
0
        public void SkipsInjectorsElement()
        {
            using (var source = new FileConfigurationSource("OldStyle.config", false))
            {
                PolicyInjectionSettings settings
                    = (PolicyInjectionSettings)source.GetSection(PolicyInjectionSettings.SectionName);

                Assert.IsNotNull(settings);
                Assert.AreEqual(3, settings.Policies.Count);
            }
        }
コード例 #13
0
        /// <summary>
        /// Initializes the specified configuration files, we only use the first found one
        /// </summary>
        /// <param name="configFiles">All the potential configuration files, order by priority.</param>
        /// <returns></returns>
        public override bool Initialize(string[] configFiles)
        {
            if (!base.Initialize(configFiles))
                return false;

            var configurationSource = new FileConfigurationSource(this.ConfigFile);

            var factory = new LogWriterFactory(configurationSource);
            m_LogWriter = factory.Create();

            return true;
        }
コード例 #14
0
        public void then_removed_sections_are_removed_when_saving()
        {
            ConfigurationSourceModel sourceModel = Container.Resolve<ConfigurationSourceModel>();
            var loggingSettings = sourceModel.Sections.Where(x => x.ConfigurationType == typeof(LoggingSettings)).First();
            loggingSettings.Delete();

            ApplicationModel.Save();

            FileConfigurationSource source = new FileConfigurationSource(TestConfigurationFilePath, false);
            Assert.IsNull(source.GetSection(LoggingSettings.SectionName));

        }
コード例 #15
0
 /// <summary>
 /// Initializes a new instance of the <see cref="EntLib5Factory"/> class.
 /// </summary>
 /// <param name="EntLib5ConfigurationFile">The enterprise library 5.0 configuration file to load and watch. Supercedes any configuration found in the Config file.</param>
 public EntLib5Factory(string EntLib5ConfigurationFile)
 {
     // verify provided file exists
     var fi = new System.IO.FileInfo(EntLib5ConfigurationFile);
     if (fi.Exists)
     {
         var builder = new ConfigurationSourceBuilder();
         var EntLib5ConfigurationSrc = new FileConfigurationSource(EntLib5ConfigurationFile, true);
         
         builder.UpdateConfigurationWithReplace(EntLib5ConfigurationSrc);
         EnterpriseLibraryContainer.Current = EnterpriseLibraryContainer.CreateDefaultContainer(EntLib5ConfigurationSrc);
     }
 }
 public void ThenThrowsExceptionWhenTypeIsInvalid()
 {
     try
     {
         IConfigurationSource config = new FileConfigurationSource(configurationFilePath);
         var sources = config.GetSection("enterpriseLibrary.ConfigurationSource");
         Assert.Fail("Should have thrown");
     }
     catch (ConfigurationException ex)
     {
         Assert.IsTrue(ex.Message.Contains("The type 'Microsoft.Practices.EnterpriseLibrary.Common.Configuration.InvalidType, Microsoft.Practices.EnterpriseLibrary.Common' defined in the 'InvalidType' configuration source is invalid"));
     }
 }
コード例 #17
0
        public void ShouldLogOnlyToCategoriesGivenInConfig()
        {
            using (var configSource = new FileConfigurationSource("LogCallHandler.config", false))
            {
                using (var eventLog = new EventLogTracker("Application"))
                {
                    using (var injector = new PolicyInjector(configSource))
                    {
                        LoggingTarget target = injector.Create<LoggingTarget>();
                        target.DoSomething(1, "two", 3.0);
                    }

                    Assert.AreEqual(1, eventLog.NewEntries().Select(le => le.Category == "Default Category").Count());
                }
            }
        }
コード例 #18
0
ファイル: Program.cs プロジェクト: josecohenca/xmlconvertsql
        private static FileConfigurationSource GetFileConfigurationSource(string SourceName)
        {
            //获取App.config
            Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

            //获取资源节点集合
            ConfigurationSourceSection section =
                (ConfigurationSourceSection)config.GetSection(ConfigurationSourceSection.SectionName);

            //获取重定向配置文件资源配置节点
            FileConfigurationSourceElement elem =
                (FileConfigurationSourceElement)section.Sources.Get(SourceName);

            //获取重定向配置文件资源
            FileConfigurationSource fileSource = new FileConfigurationSource(elem.FilePath);
            return fileSource;
        }
コード例 #19
0
        public void AssembledCorrectlyLogCallHandler()
        {
            using (var configSource = new FileConfigurationSource("LogCallHandler.config", false))
            {
                Logger.SetLogWriter(new LogWriterFactory(configSource.GetSection).Create(), false);

                PolicyInjectionSettings settings = new PolicyInjectionSettings();

                PolicyData policyData = new PolicyData("policy");
                LogCallHandlerData data = new LogCallHandlerData("fooHandler", 66);
                data.BeforeMessage = "before";
                data.AfterMessage = "after";
                data.IncludeCallTime = true;
                data.EventId = 100;
                data.Categories.Add(new LogCallHandlerCategoryEntry("category1"));
                data.Categories.Add(new LogCallHandlerCategoryEntry("category2"));
                policyData.MatchingRules.Add(new CustomMatchingRuleData("matchesEverything", typeof(AlwaysMatchingRule)));
                policyData.Handlers.Add(data);
                settings.Policies.Add(policyData);

                using (var container = new UnityContainer().AddNewExtension<Interception>())
                {
                    settings.ConfigureContainer(container);

                    var policy = container.Resolve<InjectionPolicy>("policy");

                    LogCallHandler handler = (LogCallHandler)
                        (policy.GetHandlersFor(GetMethodImpl(MethodBase.GetCurrentMethod()), container)).ElementAt(0);
                    Assert.IsNotNull(handler);
                    Assert.AreEqual(66, handler.Order);
                    Assert.AreEqual("before", handler.BeforeMessage);
                    Assert.AreEqual("after", handler.AfterMessage);
                    Assert.AreEqual(true, handler.IncludeCallTime);
                    Assert.AreEqual(100, handler.EventId);
                    Assert.AreEqual(2, handler.Categories.Count);
                    CollectionAssert.Contains(handler.Categories, "category1");
                    CollectionAssert.Contains(handler.Categories, "category2");
                }
            }
        }
コード例 #20
0
        public void ShouldCombineWithPoliciesDefinedInConfiguration()
        {
            using (var configSource = new FileConfigurationSource("CombinesWithConfig.config", false))
            {
                using (var eventLog = new EventLogTracker("Application"))
                {
                    using (var injector = new PolicyInjector(configSource))
                    {
                        var typeWhichUndergoesLoggingOnMethodCall =
                            injector.Create<TypeWhichUndergoesAttributeBasedLogging>();

                        typeWhichUndergoesLoggingOnMethodCall.TestMethod();

                        typeWhichUndergoesLoggingOnMethodCall.MyProperty = "hello";
                    }

                    Assert.AreEqual(2,
                                    eventLog.NewEntries().Select(le => le.Message.Contains("This is before the call")).
                                        Count());
                }
            }
        }
        public void WhenRetrievingAPiabConfigElementPresentInBothSources()
        {
            var configSource = new FileConfigurationSource("main.config");

            var piab = configSource.GetSection(PolicyInjectionSettings.SectionName) as PolicyInjectionSettings;

            Assert.IsNotNull(piab);

            Assert.AreEqual(3, piab.Policies.Count);

            var policy = piab.Policies.Get("Merged Policy");

            Assert.AreEqual(1, policy.MatchingRules.Count);

            var matchingRule = (MemberNameMatchingRuleData)policy.MatchingRules.Get(0);

            Assert.AreEqual(2, matchingRule.Matches.Count);

            var member = matchingRule.Matches[1];

            Assert.IsFalse(member.IgnoreCase);
        }
        public void TestInitialize()
        {
            authorizationConfiguration = new FileConfigurationSource("Authorization.config", false);
            var securitySettings = (SecuritySettings)authorizationConfiguration.GetSection(SecuritySettings.SectionName);

            AllowFredPolicyContainer = new UnityContainer();
            AllowFredPolicyContainer
                .AddNewExtension<Interception>()
                .Configure<Interception>()
                    .SetDefaultInterceptorFor<AuthorizationTestTarget>(new TransparentProxyInterceptor())
                    .AddPolicy("allowFred")
                        .AddCallHandler<AuthorizationCallHandler>(
                            new InjectionConstructor(typeof(IAuthorizationProvider), "OnlyFredHasAccess", 0))
                        .AddMatchingRule(new AlwaysMatchingRule());
            new UnityContainerConfigurator(AllowFredPolicyContainer).RegisterAll(authorizationConfiguration, securitySettings);

            AllowJackPolicyContainer = new UnityContainer();
            AllowJackPolicyContainer
                .AddNewExtension<Interception>()
                .Configure<Interception>()
                    .SetDefaultInterceptorFor<AuthorizationTestTarget>(new TransparentProxyInterceptor())
                    .AddPolicy("allowJack")
                        .AddCallHandler<AuthorizationCallHandler>(
                            new InjectionConstructor(typeof(IAuthorizationProvider), "OnlyJackHasAccess", 0))
                        .AddMatchingRule(new AlwaysMatchingRule());
            new UnityContainerConfigurator(AllowJackPolicyContainer).RegisterAll(authorizationConfiguration, securitySettings);

            AllowBasedOnTokensPolicyContainer = new UnityContainer();
            AllowBasedOnTokensPolicyContainer
                .AddNewExtension<Interception>()
                .Configure<Interception>()
                    .SetDefaultInterceptorFor<AuthorizationTestTarget>(new TransparentProxyInterceptor())
                    .AddPolicy("tokens")
                        .AddCallHandler<AuthorizationCallHandler>(
                            new InjectionConstructor(typeof(IAuthorizationProvider), "{type}-{method}", 0))
                        .AddMatchingRule(new AlwaysMatchingRule());
            new UnityContainerConfigurator(AllowBasedOnTokensPolicyContainer).RegisterAll(authorizationConfiguration, securitySettings);
        }
コード例 #23
0
 public void TryToSaveWithNullOrEmptySectionNameThrows()
 {
     FileConfigurationSource source = new FileConfigurationSource(file, false);
     source.Save(null, CreateInstrumentationSection());
 }
        /// <summary>
        /// Returns a new <see cref="FileConfigurationSource"/> configured with the receiver's settings.
        /// </summary>
        /// <returns>A new configuration source.</returns>
        protected internal override IConfigurationSource CreateSource()
        {
            IConfigurationSource createdObject = new FileConfigurationSource(FilePath);

            return(createdObject);
        }
コード例 #25
0
ファイル: App.xaml.cs プロジェクト: KINGGUOKUN/SKUEncoder
 /// <summary>
 /// 初始化数据库
 /// </summary>
 private void InitDatabase()
 {
     IConfigurationSource configurationSource =
         new FileConfigurationSource(string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "Database.config"));
     DatabaseFactory.SetDatabaseProviderFactory(new DatabaseProviderFactory(configurationSource));
 }
コード例 #26
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="T:Cedar.Core.SettingSource.ConfigurationFileSettingSource" /> class.
 /// </summary>
 /// <param name="filePath">The file path.</param>
 public ConfigurationFileSettingSource(string filePath)
 {
     Guard.ArgumentNotNullOrEmpty(filePath, "filePath");
     this.filePath = filePath;
     ConfigurationSource = new FileConfigurationSource(filePath);
 }
 private static void LoadConfiguration()
 {
     var configurationSource = new FileConfigurationSource(ConfigurationTestHelper.ConfigurationFileName, false);
     configurationSource.GetSection(LoggingSettings.SectionName);
 }
コード例 #28
0
 public void TryToSaveWithConfigurationMultipleTimes()
 {
     string tempFile = CreateFile();
     try
     {
         using (var source = new FileConfigurationSource(tempFile, false))
         {
             source.Add(InstrumentationConfigurationSection.SectionName, CreateInstrumentationSection());
             ValidateConfiguration(tempFile);
             source.Add(InstrumentationConfigurationSection.SectionName, CreateInstrumentationSection());
             ValidateConfiguration(tempFile);
             source.Add(InstrumentationConfigurationSection.SectionName, CreateInstrumentationSection());
             ValidateConfiguration(tempFile);
         }
     }
     finally
     {
         if (File.Exists(tempFile)) File.Delete(tempFile);
     }
 }
コード例 #29
0
 public void TryToSaveWithNullSectionThrows()
 {
     FileConfigurationSource source = new FileConfigurationSource(file, false);
     source.Save(InstrumentationConfigurationSection.SectionName, null);
 }
コード例 #30
0
        public void then_attributes_with_omitted_values_are_overridden()
        {
            FileConfigurationSource source = new FileConfigurationSource(TargetFile);
            InstrumentationConfigurationSection instrumentationSettings = (InstrumentationConfigurationSection)source.GetSection(InstrumentationConfigurationSection.SectionName);

            Assert.AreEqual("Overriden Application", instrumentationSettings.ApplicationInstanceName);
            Assert.IsTrue(instrumentationSettings.EventLoggingEnabled);
            Assert.IsTrue(instrumentationSettings.PerformanceCountersEnabled);
        }
コード例 #31
0
        public override IConfigurationSource CreateSource()
        {
            IConfigurationSource createdObject = new FileConfigurationSource(FilePath);

            return(createdObject);
        }
コード例 #32
0
 private void InitializeCacheManager()
 {
     if (null == _cacheManager)
     {
         var fileSource = new FileConfigurationSource("SUT.PrintEngine.App.config");
         var factory = new CacheManagerFactory(fileSource);
         _cacheManager = factory.CreateDefault();
     }
 }