カスタムBehaviorExtensionElementを介して構成する拡張機能を備えたワークフローサービスがあります。アプリケーションの他の部分でもいくつかの構成プロパティを再利用する必要があるため、ConfigurationManagerを介して構成要素を読み取る方法を知りたいと思います。
public class ServiceConfigurationElement : BehaviorExtensionElement
{
public const string RetryDelayKey = "retryDelay";
/// <summary>
/// Creates a behavior extension based on the current configuration settings.
/// </summary>
/// <returns>
/// The behavior extension.
/// </returns>
protected override object CreateBehavior()
{
var behavior = new ServiceConfigurationBehavior
{
RetryDelay = this.CommsRetryDelay
};
return behavior;
}
/// <summary>
/// Gets the type of behavior.
/// </summary>
/// <returns>
/// A <see cref="T:System.Type"/>.
/// </returns>
public override Type BehaviorType
{
get
{
return typeof(ServiceConfigurationBehavior);
}
}
[ConfigurationProperty(RetryDelayKey, IsKey = false, DefaultValue = true)]
public TimeSpan RetryDelay
{
get
{
return (TimeSpan)this[RetryDelayKey];
}
set
{
this[RetryDelayKey] = value;
}
}
}
そして構成:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceConfiguration retryDelay="00:01:00" />
</behavior>
</serviceBehaviors>
</behaviors>
<extensions>
<behaviorExtensions>
<add name="serviceConfiguration" type="MyNamespace.ConfigurationElement, MyAssembly"/>
</behaviorExtensions>
</extensions>
</system.serviceModel>
ConfigurationManagerを介してRetryDelayプロパティ(およびもちろん他のプロパティ)を読み取るにはどうすればよいですか?
ありがとう
フランチェスコ