我正在用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;
}
请帮帮我。
在远程操作中不支持泛型集合。您可以使用数组或尝试自己的实现(这里有一个VB示例)。