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

Сервер
Код: 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
10.06.2008, 11:49
    #35366575
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting Приведение типов
Класс cClass1 объявлен в двух местах?
...
Рейтинг: 0 / 0
10.06.2008, 11:50
    #35366582
IvanN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting Приведение типов
на мой взгляд, нужно сделать в классе конструктор

Код: 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
10.06.2008, 11:52
    #35366592
ViktorV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Remoting Приведение типов
НахлобучКласс cClass1 объявлен в двух местах?

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

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

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


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