在 app.config 文件中,我有一个自定义部分和自定义元素。
<BOBConfigurationGroup>
<BOBConfigurationSection>
<emails test="test1@test.com, test2@test.com"></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(); }
}
}
但是当我运行我的webApp时,出现错误:
无法解析属性“test”的值。错误为:无法找到支持将类型为“String []”的属性“test”进行字符串转换的转换器。
有没有办法在getter中分割字符串?
我可以获得字符串值,然后在需要数组时手动分割它,但在某些情况下,我可能会忘记它,因此最好从一开始就接收数组。
JoinStrings-是我的自定义扩展方法
public static string JoinStrings(this IEnumerable<string> strings, string separator = ", ")
{
return string.Join(separator, strings.Where(s => !string.IsNullOrEmpty(s)));
}