Проблема с .Net Remoting - PullRequest
       21

Проблема с .Net Remoting

0 голосов
/ 19 декабря 2011

Я делаю приложение в c #. Я использую .Net Remoting для вызова метода приложения Windows в веб-приложении. Для связи между Windows и веб-приложением я создал один объект удаленного взаимодействия, в котором я объявляю один метод. В приложении Windows у меня есть коллекция одного класса, и этот класс объявлен в удаленном объекте.

Теперь моя проблема в том, что всякий раз, когда я вызываю метод интерфейса, значение коллекции становится равным нулю. Перед вызовом этого метода он содержит некоторые данные.

Кроме того, всякий раз, когда я вставляю жестко закодированное значение, оно работает, но всякий раз, когда я вставляю значение времени выполнения, возникает проблема. Я использую многопоточность для вставки данных в коллекцию. Удаленный объект состоит из двух компонентов, таких как StreamDataInfo.cs и IRemoteStreamData.cs as. Эти два разных класса в одной библиотеке классов.

namespace StreamDataService
{
     public interface IRemoteStreamData
    {
         List<string> GetPatientHistory(string BedID);
    }
}


namespace StreamDataService
{
 [Serializable] public class StreamDataInfo:MarshalByRefObject
    {
        public string m_PortNumber { get; set; }
        public string m_BedID { get; set; }
        public List<string> m_StreamData { get; set; }
    }
}

А в серверном приложении я написал интерфейсный метод как

 public List<string> GetPatientHistory(string PortNumber)
        {          
            StreamDataInfo objStreamDataInfo = new StreamDataInfo();
            lock (this)
            {
                objStreamDataInfo = (from temp in listStreamDataInfo
                                     where temp.m_PortNumber.Equals(PortNumber.ToString())
                                     select temp).SingleOrDefault();
            }
            return objStreamDataInfo.m_StreamData;
        }

Пожалуйста, помогите мне. Спасибо заранее.

1 Ответ

0 голосов
/ 19 декабря 2011

Общие коллекции не поддерживаются в удаленном взаимодействии. Вы можете использовать массивы или попробовать свою собственную реализацию (пример VB здесь ).

...