powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Remoting Приведение типов
6 сообщений из 6, страница 1 из 1
Remoting Приведение типов
    #35366567
ViktorV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток.

Сервер
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
class cServer
    {
        private TcpChannel _serverChannel;

        public cServer(uBCImport import)
        {
           
            //Создаем канал
            _serverChannel = new TcpChannel(Convert.ToInt32(import.tPort.Text));
            
            //Регистрируем канал
            start();
            //Регистрация типа и установка конечной точки
            RemotingConfiguration.RegisterWellKnownServiceType(typeof(cRemoteObject), "cRemoteObject", WellKnownObjectMode.Singleton);
            
        }

      
        public void start()
        {
            ChannelServices.RegisterChannel(_serverChannel);
        }

    }

   class cRemoteObject : MarshalByRefObject, IBroadCast
    {

      public void method1(ArrayList list)
       { 

         for(int i=0; i<list.count; i++)
          {
             cClass1 class1 = (cClass1)list[i]; //Здесь ошибка
          }

       }

    }

   public interface IBroadCast
    {
       
        void  method1(ArrayList list);
       
    }

    [Serializable]
    public class cClass1
    {
        
        public int x;
     
        public cClass1()
        {
        }
    }


Клиент

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
public class cClient
    {
        private TcpChannel _clientChannel;
        uBCExport export;
        Object remoteObject;

        public cClient(uBCExport export)
        {
            this.export = export;
            if (_clientChannel == null)
            {
              
                //Получение объекта с другого конца канала
                remoteObject = RemotingServices.Connect(typeof(IBroadCast), "tcp://localhost:5000/cRemoteObject");
                
               
            }
        }

       public void send()
       {

          ArrayList list = new ArrayList();
          cClass1 class1 = new cClass1();
          class1.x = 1;

           //Передача его обратно в общий интерфейс
           IBroadCast so = remoteObject as IBroadCast;
          
           so. method1(list)
           
       }
      
    }

    [Serializable]
    public class cClass1
    {
        
        public int x;
     
        public cClass1()
        {
        }
    }

       public interface IBroadCast
        {
              void method1(ArrayList listTree);
       
        }
    }

Как привести ArrayList, получаемый на сервере к классу cClass1?
...
Рейтинг: 0 / 0
Remoting Приведение типов
    #35366575
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Класс cClass1 объявлен в двух местах?
...
Рейтинг: 0 / 0
Remoting Приведение типов
    #35366582
IvanN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на мой взгляд, нужно сделать в классе конструктор

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  public class cClass1
    {
        
        public int x;
     
        public cClass1()
        {
        }

 public cClass1(int X)
        {
            this.x=X;
        }
    }

И делать уже
Код: plaintext
1.
cClass1 class1 = new cClass1(list[i]);
--------------------------
Хорошему коту всегда март
...
Рейтинг: 0 / 0
Remoting Приведение типов
    #35366592
ViktorV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НахлобучКласс cClass1 объявлен в двух местах?

Да.
...
Рейтинг: 0 / 0
Remoting Приведение типов
    #35366604
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViktorV НахлобучКласс cClass1 объявлен в двух местах?

Да.
Ну и зря. Выносите его в отдельную сборку и подключайте ее к клиенту и к серверу.
...
Рейтинг: 0 / 0
Remoting Приведение типов
    #35366688
ViktokV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нахлобуч ViktorV НахлобучКласс cClass1 объявлен в двух местах?

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


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