С# TransparentProxies и изменение размера массива

С# TransparentProxies и изменение размера массива

У меня есть объект С#, который имеет тип System.Runtime.Remoting.Proxies.__ TransparentProxy, который является прокси для удаленного класса Profile.

В моем классе Profile имеется массив аварийных сигналов.

Я добавляю еще два сигнала тревоги в класс Profile. Это работает на локальной стороне, но поскольку тревоги были реализованы как массив, длина удаленной стороны - две короткие.

Как изменить размер моего удаленного массива, чтобы я мог хранить еще два элемента?

Я пробовал:

  1. Array.Resize( remoteProfile.profiles[i].alarms, NEW_SIZE );

  2. remoteProfile.profiles[i] = new Profile(remoteProfile.profiles[i]);

    Конструктор копирования создает новый профиль с соответствующим размером.

  3. remoteProfile.profiles[i].ResizeAlarms();

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

  4. var newProfile = new Profile( remoteProfile.profiles[i] ); remoteProfile.profiles[i].alarms = newProfile.alarms;

Какие-либо предложения? (Это в С# 2.0.)

1 ответ

Я, наконец, решил эту проблему. Прислушайтесь к будущему посетителю Google.

Проблема исходила от объекта, идентифицирующего себя как "system.runtime.remoting.proxies.__ transparentproxy". По какой-то причине я не смог изменить их, как обычный объект.

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

Поэтому, чтобы обойти это, я создал экземпляр-конструктор для класса объекта, который скопировал все. Затем я использовал theProfile = new Profile(remoteProfile); , Это позволило мне получить доступ и изменить содержимое по мере необходимости.

licensed under cc by-sa 3.0 with attribution.