.Net Remoting问题

时间:2011-12-19 14:26:29

标签: c# multithreading collections .net-remoting

我在c#中创建一个应用程序。我正在使用.Net Remoting来调用web应用程序中的windows应用程序的方法。对于windows和web应用程序之间的通信我做了一个远程处理对象,其中我声明了一个方法。在Windows应用程序中我有一个类的集合,该类在远程对象中声明。

现在我的问题是每当我调用接口方法时,集合值变为零。在调用该方法之前它包含一些数据。

每当我插入硬编码值然后它的工作,但每当我插入运行时值,它给出问题。我正在使用线程将数据插入集合。 远程对象有两个组件,如StreamDataInfo.cs和IRemoteStreamData.cs。这两个组件是一个类库中的不同类。

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 :(得分:0)

远程处理不支持通用集合。您可以使用数组或尝试自己的实现(VB样本为here)。