2011-12-19 73 views
0

我正在c#中制作一个应用程序。我使用.Net Remoting来调用web应用程序中的Windows应用程序的方法。对于Windows和Web应用程序之间的通信,我做了一个远程对象,其中我声明了一个方法。在Windows应用程序中,我有一个类的集合,并且该类是在远程对象中声明的。问题.Net Remoting

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

此外,无论何时我插入硬编码值,然后它的工作,但每当我插入运行时值,其给予problem.I使用线程插入数据到集合。 远程对象有两个组件,分别为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; 
     } 

请帮助me.Thanks提前。

+0

问题..?你有没有想过创建这个WebService ..?如果不是,你有一个例子,你迄今为止的代码基地..?运行时值与硬编码声音(如实例化)或初始化值超出范围的问题。你是否声明变量为私人..?如果是的话,尝试使用这种方式保护,如果你使用另一个基类中的方法访问/分配这些成员变量..需要真正看到你的代码看起来像确定 – MethodMan 2011-12-19 14:29:07

+0

我的要求是使用.net remoting.i知道网络服务,但我必须使用远程处理 – Dany 2011-12-19 14:31:05

+0

确定.net远程处理..也会请求一些pInvoking以及让我们看看你的一些代码..也许在这里一些额外的眼睛可以帮助..? – MethodMan 2011-12-19 14:31:55

回答

0

远程处理不支持通用集合。你可以使用数组或者尝试你自己的实现(VB示例是here)。