Массив элементов log4net в приложении конфигурации

Как я могу написать что-то вроде этого:

<appender name="MyAppender" type="MyNamespace.MyAppender, MyDll">
    <url value="http://example1.com" />
    <url value="http://example2.com" />
    <url value="http://example3.com" />
</appender>

в файле конфигурации log4net Appender и десериализовать его в мое пользовательское свойство в моем классе:

public class MyAppender : BulkAppender
{
    public string[] Url { get; set; }
}

У меня нет проблем с одиночной строкой, но что бы я ни делал, я не могу десериализовать массив.


person Peska    schedule 23.11.2017    source источник
comment
Может быть, обернуть их в другой элемент (<urls><url .../><url ... /></urls>) и переименовать ваше свойство как public string[] Urls?   -  person Evk    schedule 23.11.2017
comment
@Evk К сожалению, не работает.   -  person Peska    schedule 23.11.2017


Ответы (1)


Не самое элегантное решение, но вы можете использовать список вместо массива:

public class MyAppender : BulkAppender
{
    public List<string> Url { get; set; }
}

А затем используйте что-то вроде этого в вашем app.config:

<url>
  <add value="http://example1.com" />
  <add value="http://example2.com" />
  <add value="http://example3.com" />
</url>
person Szybki    schedule 19.06.2018