powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / .Net Remoting и удаленный класс
13 сообщений из 13, страница 1 из 1
.Net Remoting и удаленный класс
    #34591599
Фотография webus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!
Пишу я приложение для фирмы. Изначально задумывалось как клиент-серверное! Но при написании клиента он разросся до немыслемых размеров. Точнее не сам клиент, а операции бизнесс логики на нем. Решил перевести приложение на трехзвенку, написанием тем самым сервера приложений. Все бы ничего, попутно читая документацию по Remoting. Но вот какое дело.
Как я понял обращаться к Remote объектам можно только предварительно объявив их интерфейсы. Дак вот, к одному классу я обратиться могу. А как мне обратиться к объекту, в котором есть подкласс ?

Пример класса для Remoting:
Код: plaintext
1.
2.
3.
4.
5.
6.
public class A {
   public static int abs;
   public class B {
      int GetValue();
   }
}

Интересует как можно обратится к классу B. Если даже разобрать строку подключения клиента, то
она будет такой:
http://192.168.100.1/MyRemoteClass.soap

Т.е. чтобы мне подключится к другому классу, придется менять строку подключения, что особо не приемлемо.

Может я что то не приавльно делаю? Подскажите?
...
Рейтинг: 0 / 0
.Net Remoting и удаленный класс
    #34592291
Фотография webus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неужели так мало спецов по Remoting у нас ???
...
Рейтинг: 0 / 0
.Net Remoting и удаленный класс
    #34592303
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webus
Пример класса для Remoting:

Это не пример класса для Remoting, потому что он не унаследован от MarshalByRefObject. Так что, во-первых, приведите нормальный код. Во-вторых, объясните необходимость использования вложенного класса.
...
Рейтинг: 0 / 0
.Net Remoting и удаленный класс
    #34592869
Фотография webus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нахлобуч webus
Пример класса для Remoting:

Это не пример класса для Remoting, потому что он не унаследован от MarshalByRefObject. Так что, во-первых, приведите нормальный код. Во-вторых, объясните необходимость использования вложенного класса.

Хорошо! Ну зыбыл про нормальный код :)
Код: plaintext
1.
2.
3.
4.
5.
6.
public class A : MarshaByRefObject {
   public static int abs;
   public class B : MarshaByRefObject {
      int GetValue();
   }
}

А приводил я его сугубо для примера. С вложенными классами есть необходимость. Т.к. написана очень большая библиотека, где именно используется вложенны классы.

Пример:
Код: plaintext
1.
2.
3.
db.MyConn - это статик переменная типа OleDbConnection
db.Procedure p = new db.Procedure();//класс для работы с процедурами
db.Procedure.Adm c = new db.Procedure.Adm();//класс для работы с процедурами (админскими)

Это очень грубый пример. Но факт что охото так же работать с ними на клиенте, с учетом того что они реализованы на сервере.
...
Рейтинг: 0 / 0
.Net Remoting и удаленный класс
    #34592898
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да уж... Как-то очень изысканно получается. Боюсь, что каждый класс придется экспортировать отдельно.

Советую капитально задуматься над дизайном.
...
Рейтинг: 0 / 0
.Net Remoting и удаленный класс
    #34592900
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webus
Код: plaintext
1.
2.
3.
db.MyConn - это статик переменная типа OleDbConnection
db.Procedure p = new db.Procedure();//класс для работы с процедурами
db.Procedure.Adm c = new db.Procedure.Adm();//класс для работы с процедурами (админскими)

Эт вы чего, собираетесь делать OleDbConnection доступным удаленно?
...
Рейтинг: 0 / 0
.Net Remoting и удаленный класс
    #34593010
Обязательно необходимо использовать раные URL для разных MarshalByRef типов.
...
Рейтинг: 0 / 0
.Net Remoting и удаленный класс
    #34593014
Твоя главная задача, я так понимаю, это не мнять ничего на клиенте ?
Кроме как содержания удаленных типов ?
...
Рейтинг: 0 / 0
.Net Remoting и удаленный класс
    #34593023
А для того чтобы на клиенте постоить такое же дерево классов и подклассов
тебе необходимо использовать утилиту SoapSuds.exe
она сгенерирует прокси классы (не интерфейсы),
а ты уже самостоятельно их вставь один в другой.

советую прочитать Advanced .Net Remoting (C# Edition) by Ingo Rammer Apress © 2002 (404 pages)

там есть все по Remoting. я давно изучал уже плохо помню.
...
Рейтинг: 0 / 0
.Net Remoting и удаленный класс
    #34593029
Главное создать все MarshalByRef типы на сервере и зарегистрировать каждого
со своим персональным URL. канал использовать можно один и тот же и порт тоже.

а дальше - задача тривиальная.
...
Рейтинг: 0 / 0
.Net Remoting и удаленный класс
    #34593037
Осака Вестингауз
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На сервере:
A: IA;
{
public class B: IB{...};
public IB b=new B();
}

на клиенте:
IA a=Activator.CreateInstance(typeof(IA), "URL://");
IB b=a.b;

полный текст ошибки какой?
...
Рейтинг: 0 / 0
.Net Remoting и удаленный класс
    #34593046
Осака Вестингауз
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть не CreateInstance, а GetObject
...
Рейтинг: 0 / 0
.Net Remoting и удаленный класс
    #34597785
Фотография webus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, попробую!
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / .Net Remoting и удаленный класс
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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