powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Remoting. Поиметь объект класса на сервере.
8 сообщений из 8, страница 1 из 1
Remoting. Поиметь объект класса на сервере.
    #32787905
Фотография (`yka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запускаем сервер

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

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

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

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

Вроде того:


Код: 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
Remoting. Поиметь объект класса на сервере.
    #32796334
Фотография (`yka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на пальцах:

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

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

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

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

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

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

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


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