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

Я делаю приложение на С#. Я использую .Net Remoting для вызова метода приложения 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;
        }

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


person Dany    schedule 19.12.2011    source источник
comment
Вопрос..? Вы думали о создании этого как веб-сервиса ..? если нет, у вас есть пример того, что у вас есть до сих пор в отношении базы кода ..? значения времени выполнения по сравнению с жестко закодированными звуками, похожими на проблему создания экземпляра или инициализации со значениями, выходящими за рамки. вы объявляете переменные как частные ..? если это так, попробуйте защититься таким образом, если вы используете методы из одного базового класса в другом, вы получаете доступ/назначаете эти переменные-члены.. нужно действительно увидеть, как выглядит ваш код, чтобы определить   -  person MethodMan    schedule 19.12.2011
comment
мое требование - использовать удаленное взаимодействие .net. Я знаю веб-службу, но мне нужно использовать удаленное взаимодействие   -  person Dany    schedule 19.12.2011
comment
хорошо, удаленное взаимодействие .net.. также потребует некоторого pInvoking, но давайте взглянем на часть вашего кода.. возможно, несколько дополнительных глаз могут помочь..?   -  person MethodMan    schedule 19.12.2011
comment
Можете ли вы опубликовать часть кода, в котором вы получаете эту проблему (раздел, в котором ваша коллекция остается пустой, код, в котором вы заполняете коллекцию)   -  person pstrjds    schedule 19.12.2011
comment
я использовал все переменные-члены public, тогда это тоже не работает. В других методах он показывает данные. Проблема только с методом интерфейса.   -  person Dany    schedule 19.12.2011
comment
Можете ли вы опубликовать код, пожалуйста? Как определяется тип класса? Сериализуемый?   -  person Strillo    schedule 19.12.2011


Ответы (1)


Универсальные коллекции не поддерживаются при удаленном взаимодействии. Вы можете либо использовать массивы, либо попробовать собственную реализацию (образец VB находится здесь< /а>).

person Strillo    schedule 19.12.2011