Вот вариант принятого ответа с использованием следующего пользовательского класса для представления параметра:
namespace MyApplication
{
public class EndPoint
{
public string HostName { get; set; }
public int Port { get; set; }
}
}
В принятом ответе предлагается использовать специализированный класс коллекции, EndPointCollection
для хранения настроек. Однако я не думаю, что это необходимо; тип массива (EndPoint[]
) также, кажется, работает.
Однако ввод типа массива в браузере типов не работает; вместо этого вы можете указать тип непосредственно в файле .settings (с помощью текстового редактора):
<Setting Name="MyEndPoints" Type="MyApplication.EndPoint[]" Scope="User">
<Value Profile="(Default)" />
</Setting>
Кроме того, если редактор значений, показанный в принятом ответе, недоступен, вы можете вместо этого ввести значения непосредственно в поле значения, используя XML:
<ArrayOfEndPoint>
<EndPoint>
<HostName>MyHostName</HostName>
<Port>12345</Port>
</EndPoint>
<EndPoint>
<HostName>MyHost1</HostName>
<Port>1212</Port>
</EndPoint>
</ArrayOfEndPoint>
Обратите внимание, что декларации пространства имен XML, которые генерирует Visual Studio, не являются необходимыми в XML, как показано выше.