app.configには、カスタム要素を含むカスタムセクションがあります。電子メールの要素について文字列から文字列の配列への値を解析する
<BOBConfigurationGroup>
<BOBConfigurationSection>
<emails test="[email protected], [email protected]"></emails>
</BOBConfigurationSection>
</BOBConfigurationGroup>
私は、カスタムタイプがあります。
public class EmailAddressConfigurationElement : ConfigurationElement, IEmailConfigurationElement
{
[ConfigurationProperty("test")]
public string[] Test
{
get { return base["test"].ToString().Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); }
set { base["test"] = value.JoinStrings(); }
}
}
をしかし、私は自分のWebアプリケーションを実行すると、私はエラーを取得する:
プロパティ「テスト」の値を解析できません。エラーは、 'String []'型の 'test'プロパティの文字列への変換をサポートするコンバータが見つかりません。
getterに文字列を分割する方法はありますか?
私は配列を必要とするときに文字列値を取得して分割することができますが、場合によってはそれを忘れる可能性があります。
JoinStrings - あなたはstring
とstring[]
間の変換にTypeConverter
を追加することができ、私のカスタム拡張メソッド
public static string JoinStrings(this IEnumerable<string> strings, string separator = ", ")
{
return string.Join(separator, strings.Where(s => !string.IsNullOrEmpty(s)));
}
解決策の1つですが、私はdownvoterではありません) – demo
これは、他の回答と同じように堅牢なソリューションではなく、実際にはちょうどハックだからです。 – DavidG