Windows服务上的WCF C#类为null

时间:2017-10-24 16:50:18

标签: c# wcf

我有一个单独的WCF服务项目在与我的Windows服务相同的解决方案中运行,在windows服务中我将数据从数据库填充到我的DataStore类(定期发生)。 DataStore在内存中,以便我可以随时随地访问它,问题出在我的WCF服务中它是null但不在Windows服务中......我明白为什么......问题是如何访问在我的WCF中具有相同数据的同一个类? Web服务将有多个连接,因此DataStore需要拥有最新数据,而不是null。

public string GetData(string obj) 
{ 
    try 
    { 
        return TestCount = DataStore.Instance.Test.Count.ToString(); 
    } 
    catch (Exception ex) 
    { 
        return "Error"; 
    } 
} 

1 个答案:

答案 0 :(得分:0)

很难从你的问题中准确地说出你想要实现的目标;但是,如果,正如我怀疑的那样,你试图通过WCF传输复杂类型(类),首先,正如@Amir建议的那样,你需要Operation or DataContract装饰器 - 我注意到它们不存在于你的样本。根据数据传输的复杂程度,您可能还需要KnownType装饰器。

假设您传递的是复杂类型,将这些模型分离为各自独立的程序集可能会对您有所帮助。

前段时间,我在传递虚拟界面时写了一个short article,有时你可能不知道你要传输的是什么。

在WCF服务中使用数据缓存是否有任何价值也值得考虑。如果您使用的是默认实例,那么您不会通过一次调用保留此缓存。