Как создать объект с несколькими значениями? - PullRequest
0 голосов
/ 21 июня 2010

Я создаю XML-файл, который будет содержать несколько значений, касающихся TCP-соединения (IP (строка), PORT (int), RetryCount (int), StartAutomatics (bool) и т. Д.). Будет определен ряд TcpConnections вот так (неизвестно мне).

Я подумал о том, чтобы создать какой-то объект с именем TcpConnectionHolder, который я мог бы создать динамически (по одному на TCP-соединение), который бы содержал все связанные поля, чтобы я мог легко загружать все TCP-соединения из XML в этот динамический объект и что я мог позже используйте эти поля повторно или обновите их из кода при необходимости.

Мои вопросы:

  1. Как создать такой объект с несколькими полями (например, с более чем одним значением -> Данные будут хорошими)
  2. Как мне назначить несколько значений одному соединению - (желательно, чтобы оба значения устанавливались одновременно и одно за другим, было бы неплохо).
  3. Как мне это прочитать?

1 Ответ

2 голосов
/ 21 июня 2010

Похоже, вам нужен только один класс (TcpConnection) со свойствами для IP-адреса, порта, числа повторных попыток и т. Д.

Я бы предложил такую ​​структуру:

public sealed class TcpConnection
{
    private readonly int port;
    public int Port { get { return port; } }

    // Or use one of the types from System.Net
    private readonly string ipAddress;
    public string IpAddress { get { return ipAddress; } }

    private readonly int retryCount;
    public int RetryCount { get { return retryCount; } }

    // etc

    public TcpConnection(XElement element)
    {
        // Extract the fields here
    }
}

(В качестве альтернативы используйте статический метод фабрики для извлечения значений из XElement и конструктор, принимающий только «необработанные» значения.)

Затем для хранения нескольких значений просто используйте List<TcpConnection>.

Это точнее, чем один объект, хранящий несколько IP-адресов, несколько повторных попыток и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...