Re[10]: Настройка .NET Remoting
От: HowardLovekraft  
Дата: 31.10.08 14:11
Оценка:
Здравствуйте, valia, Вы писали:

V>Если не ошибаюсь, то это говорит о том, что объекты данного типа сериализуемы, не так?

Да. Следовательно, получив ArrayList как результат обращения к MBR-объекту, вы получите его десериализованную копию. Выполнив на клиенте что-то вроде:
arrayList.Add(...)

вы измените свой локальный объект, но не серверный.
Re[11]: Настройка .NET Remoting
От: valia  
Дата: 31.10.08 14:19
Оценка:
Здравствуйте, HowardLovekraft, Вы писали:

HL>Да. Следовательно, получив ArrayList как результат обращения к MBR-объекту, вы получите его десериализованную копию. Выполнив на клиенте что-то вроде:

HL>
HL>arrayList.Add(...)
HL>

HL>вы измените свой локальный объект, но не серверный.

Это всё вполне логично, но непосредственное обращение к полю типа ArrayList у меня происходит в public-методе, который вызывается на клиенте, а значит все изменения должны происходить и на стороне сервера, разве не так?
Re[12]: Настройка .NET Remoting
От: HowardLovekraft  
Дата: 31.10.08 14:25
Оценка:
Здравствуйте, valia, Вы писали:

V>непосредственное обращение к полю типа ArrayList у меня происходит в public-методе, который вызывается на клиенте, а V>значит все изменения должны происходить и на стороне сервера, разве не так?


Так. Это пояснение было в ответ на:

Так вот если с клиента обращаться к этим полям, то int менялся, а ArrayList — нет

Re[13]: Настройка .NET Remoting
От: valia  
Дата: 31.10.08 14:50
Оценка:
Здравствуйте, HowardLovekraft, Вы писали:

HL>Здравствуйте, valia, Вы писали:


V>>непосредственное обращение к полю типа ArrayList у меня происходит в public-методе, который вызывается на клиенте, а V>значит все изменения должны происходить и на стороне сервера, разве не так?


HL>Так. Это пояснение было в ответ на:

HL>

HL>Так вот если с клиента обращаться к этим полям, то int менялся, а ArrayList — нет


Только почему-то когда я пытаюсь вызвать этот метод, у меня клиент вылетает с исключением, о котором писала в самом первом сообщении... при этом ремотинг-объект виден на клиенте и все изменения, происходящие на сервере с полем типа int, например, хотя по сути на клиенте должны быть видны и изменения, происходящие с ArrayList

Спасибо
Re[11]: Настройка .NET Remoting
От: Unforgiver Россия  
Дата: 01.11.08 07:12
Оценка:
Здравствуйте, 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) в синглтоне вообще быть не может.
Всё заканчивается плохо. Если что-то закончилось хорошо — значит оно еще не закончилось.
Re[4]: Настройка .NET Remoting
От: valia  
Дата: 01.11.08 12:28
Оценка:
Здравствуйте, HowardLovekraft, Вы писали:

HL>1. Чем обусловлен выбор HttpChannel, а не пары HttpServerChannel и HttpClientChannel? Это сделано сознательно?

HL>2. Метод ChannelServices.RegisterChannel(IChannel) — устаревший. Его использование чем-то обусловлено?

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

Спасибо
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.