Здравствуйте, valia, Вы писали:
V>Если не ошибаюсь, то это говорит о том, что объекты данного типа сериализуемы, не так?
Да. Следовательно, получив ArrayList как результат обращения к MBR-объекту, вы получите его десериализованную
копию. Выполнив на клиенте что-то вроде:
arrayList.Add(...)
вы измените свой локальный объект, но не серверный.
Здравствуйте, HowardLovekraft, Вы писали:
HL>Да. Следовательно, получив ArrayList как результат обращения к MBR-объекту, вы получите его десериализованную копию. Выполнив на клиенте что-то вроде:
HL>HL>arrayList.Add(...)
HL>
HL>вы измените свой локальный объект, но не серверный.
Это всё вполне логично, но непосредственное обращение к полю типа ArrayList у меня происходит в public-методе, который вызывается на клиенте, а значит все изменения должны происходить и на стороне сервера, разве не так?
Здравствуйте, valia, Вы писали:
V>непосредственное обращение к полю типа ArrayList у меня происходит в public-методе, который вызывается на клиенте, а V>значит все изменения должны происходить и на стороне сервера, разве не так?
Так. Это пояснение было в ответ на:
Так вот если с клиента обращаться к этим полям, то int менялся, а ArrayList — нет
Здравствуйте, HowardLovekraft, Вы писали:
HL>Здравствуйте, valia, Вы писали:
V>>непосредственное обращение к полю типа ArrayList у меня происходит в public-методе, который вызывается на клиенте, а V>значит все изменения должны происходить и на стороне сервера, разве не так?
HL>Так. Это пояснение было в ответ на:
HL>HL>Так вот если с клиента обращаться к этим полям, то int менялся, а ArrayList — нет
Только почему-то когда я пытаюсь вызвать этот метод, у меня клиент вылетает с исключением, о котором писала в самом первом сообщении... при этом ремотинг-объект виден на клиенте и все изменения, происходящие на сервере с полем типа int, например, хотя по сути на клиенте должны быть видны и изменения, происходящие с ArrayList
Спасибо
Здравствуйте, HowardLovekraft, Вы писали:
HL>Здравствуйте, valia, Вы писали:
V>>Если не ошибаюсь, то это говорит о том, что объекты данного типа сериализуемы, не так?
HL>Да. Следовательно, получив ArrayList как результат обращения к MBR-объекту, вы получите его десериализованную копию. Выполнив на клиенте что-то вроде:
HL>HL>arrayList.Add(...)
HL>
HL>вы измените свой локальный объект, но не серверный.
И тем не менее:
[SerializableAttribute]
[ComVisibleAttribute(true)]
public struct Int32 : IComparable, IFormattable, IConvertible,
IComparable<int>, IEquatable<int>
И не смотря на это, если напишем на клиенте
serverObject.IntField = 10;
То изменим
серверный объект, а не локальную копию.

(не берусь утверждать, что правильно так делать, но тем не менее факт на лицо — значение поля меняется на сервере).
ЗЫ: Насколько я понимаю, non-Serializable полей (public) в синглтоне вообще быть не может.
Всё заканчивается плохо. Если что-то закончилось хорошо — значит оно еще не закончилось.
Здравствуйте, HowardLovekraft, Вы писали:
HL>1. Чем обусловлен выбор HttpChannel, а не пары HttpServerChannel и HttpClientChannel? Это сделано сознательно?
HL>2. Метод ChannelServices.RegisterChannel(IChannel) — устаревший. Его использование чем-то обусловлено?
Ответы на 1., 2. : На самом деле никакого глубокого смысла в причинах такого выбора нет

У меня возникла мысль: может причина неработоспособности состоит в том, что в библиотеке, содержащей класс Task, написанный на managed C++, неправильно организована сериализация?
Спасибо