Гость
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Remoting. Поиметь объект класса на сервере. / 8 сообщений из 8, страница 1 из 1
17.11.2004, 21:33
    #32787905
(`yka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Поиметь объект класса на сервере.
Запускаем сервер

ChannelServices.RegisterChannel(new TcpChannel(888));
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(RStorage),
"RemoteStorageHost",
WellKnownObjectMode.SingleCall);

Клиенты подцепляются, и создаются объекты класса RStorage. Как на сервере же получать эти объекты сразу после создания для инициализации (настройки всякие)?

-----
Иногда решительный шаг вперед - результат хорошего пинка сзади
...
Рейтинг: 0 / 0
18.11.2004, 00:53
    #32788049
Bigheadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Поиметь объект класса на сервере.
Опишите подробнее, что именно вы хотите. Чтобы создать объект на сервере, никаких доп. действий не нужно.
Код: plaintext
RStorage obj = new RStorage();
Если же вы хотите выполнить некую инициализацию объекта перед тем, как к нему обратится клиент, то пишите этот код в конструкторе.
...
Рейтинг: 0 / 0
19.11.2004, 18:51
    #32792234
(`yka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Поиметь объект класса на сервере.
Откуда в конструкторе возьмутся данные? Единственный вариант для меня пока - SAO singleton. Тогда можно сделать new, и инициализировать члены класса хоть в конструкторе, хоть после создания.. А как поступать с инициализацией данными извне объектов, активируемых клиентом? У класса такого объекта и конструктор-то бывает только по-умолчанию.

-----
Иногда решительный шаг вперед - результат хорошего пинка сзади
...
Рейтинг: 0 / 0
22.11.2004, 11:22
    #32793535
Por
Por
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Поиметь объект класса на сервере.
Может я чего не понял, но если речь идет об общих значениях полей/методах для каждого экземпляра одного класса, то эти общие надо сделать статиками.

Вроде того:


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class RStorage
{
   public static string StorageType;
   // Прочий функционал объекта
}

public class RemoteServer
{
   public RemoteServer()
   {
      RStorage.StorageType = "MyType";
   }
}
...
Рейтинг: 0 / 0
23.11.2004, 15:53
    #32796334
(`yka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Поиметь объект класса на сервере.
на пальцах:

Есть класс с конструктором по-умолчанию (без параметров). Объект класса создается клиентом. Сервер не имеет указателей на объекты этого класса, создаваемые клиентами. Внутри класса происходит работа, например, с файлами в некоем каталоге на сервере (ессесно). Как сказать объекту класса, в каком каталоге ему работать?! Реестр, сокеты и проч. не предлагать - коню понятно... хотя и там нужно знать ветку реестра, порт, хост и т.д.. Все это меняющиеся параметры, и очень хотелось бы узнать, как передать эту "внешнюю" информацию объекту класса.

-----
Иногда решительный шаг вперед - результат хорошего пинка сзади
...
Рейтинг: 0 / 0
23.11.2004, 16:39
    #32796529
Roman S. Golubin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Поиметь объект класса на сервере.
(`ykaЕсть класс с конструктором по-умолчанию (без параметров). Объект класса создается клиентом.

При SingleCall клиентом создается клиентский же прокси к серверному классу, а не объект.
(`ykaСервер не имеет указателей на объекты этого класса, создаваемые клиентами.
При вызове метода класса помеченного как SingleCall объект этого класса создается на сервере. Сервер имеет на него все указатель. А вот клиент, как раз, про него ни когда ни чего не узнает, если этот самый объект не свяжется с клиентом и не сообщит о себе.
(`ykaВнутри класса происходит работа, например, с файлами в некоем каталоге на сервере (ессесно).
Работа происходит не внутри класса, а внутри потока вызванного тобой метода.
(`ykaКак сказать объекту класса, в каком каталоге ему работать?!
Опять таки, не объекту, а методу. Сказать просто - передать путь как параметр при вызове метода.
...
Рейтинг: 0 / 0
23.11.2004, 16:53
    #32796563
Por
Por
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Поиметь объект класса на сервере.
Roman S. Golubin (`ykaЕсть класс с конструктором по-умолчанию (без параметров). Объект класса создается клиентом.

При SingleCall клиентом создается клиентский же прокси к серверному классу, а не объект.

Точно. Более того, SingleCall экземпляр класса на сервере создается непосредственно в момент вызова какого-либо метода этого экземпляра. А хуже всего то, что SingleCall не хранит своего состояния (значения полей), т.к. один экземпляр клиентского TransparentProxy при последовательном вызове одного и того-же метода создаст на сервере 2 разных экземпляра класса, методы которых и будут выполнены.
...
Рейтинг: 0 / 0
23.11.2004, 18:00
    #32796779
EvAlex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting. Поиметь объект класса на сервере.
вообще-то можно и проще
если объект SingleTon
то сам сервер может его получить обратившись сам к себе как клиент.

Т.е. что мешает серверу обращаться сам к себе?

а вообще посмотри http://www.genuinechannels.com/
...
Рейтинг: 0 / 0
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Remoting. Поиметь объект класса на сервере. / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]