/// <summary> /// Get the configuration type for the type of <see cref="ILogDistributionStrategy"></see> /// </summary> /// <param name="distributionName">Name of distribution strategy as defined in configuration</param> /// <returns>A <see cref="Type"></see> instance describing the type of <see cref="ILogDistributionStrategy"></see> to be instantiated</returns> protected override Type GetConfigurationType(string distributionName) { LoggingConfigurationView loggingConfigurationView = (LoggingConfigurationView)CreateConfigurationView(); DistributionStrategyData data = loggingConfigurationView.GetDistributionStrategyData(distributionName); return(GetType(data.TypeName)); }
public void Init() { XmlTextReader xmlReader = new XmlTextReader(new StringReader(xmlString)); XmlSerializer xmlSerializer = new XmlSerializer(typeof(DistributionStrategyData)); strategy = xmlSerializer.Deserialize(xmlReader) as DistributionStrategyData; }
/// <summary> /// Creates node with specified runtime configuration data. /// </summary> /// <param name="distributionStrategyData">Runtime configuration data in which to initialize this node.</param> protected DistributionStrategyNode(DistributionStrategyData distributionStrategyData) : base() { if (distributionStrategyData == null) { throw new ArgumentNullException("data"); } this.distributionStrategyData = distributionStrategyData; }
/// <summary> /// <para> /// Initializes the provider with its name and any attributes associated with the provider. /// </para> /// </summary> /// <param name="configurationView">Dynamic view into the configuration information needed by the <see cref="MsmqLogDistributionStrategy"></see></param> public override void Initialize(ConfigurationView configurationView) { ArgumentValidation.CheckForNullReference(configurationView, "configurationView"); ArgumentValidation.CheckExpectedType(configurationView, typeof(LoggingConfigurationView)); LoggingConfigurationView loggingConfigurationView = (LoggingConfigurationView)configurationView; DistributionStrategyData distributionStrategyData = loggingConfigurationView.GetDistributionStrategyData(ConfigurationName); ArgumentValidation.CheckExpectedType(distributionStrategyData, typeof(MsmqDistributionStrategyData)); msmqDistributionStrategyData = (MsmqDistributionStrategyData)distributionStrategyData; }
/// <summary> /// Gets the <see cref="DistributionStrategyData"></see> for the given distribution strategy name /// </summary> /// <param name="distributionName">Name of the <see cref="DistributionStrategyData"></see> found in configuration</param> /// <returns><see cref="DistributionStrategyData"></see> as read from configuration</returns> public virtual DistributionStrategyData GetDistributionStrategyData(string distributionName) { ArgumentValidation.CheckForNullReference(distributionName, "distributionName"); ArgumentValidation.CheckForEmptyString(distributionName, "distributionName"); LoggingSettings settings = GetLoggingSettings(); if (settings.DistributionStrategies == null) { throw new ConfigurationException(SR.ExceptionNoStrategiesDefined); } DistributionStrategyData distributionStrategyData = settings.DistributionStrategies[distributionName]; if (null == distributionStrategyData) { throw new ConfigurationException(SR.ExceptionNoDistributionStragegy(distributionName)); } return(distributionStrategyData); }