我有一个单独的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";
}
}
答案 0 :(得分:0)
很难从你的问题中准确地说出你想要实现的目标;但是,如果,正如我怀疑的那样,你试图通过WCF传输复杂类型(类),首先,正如@Amir建议的那样,你需要Operation or DataContract装饰器 - 我注意到它们不存在于你的样本。根据数据传输的复杂程度,您可能还需要KnownType装饰器。
假设您传递的是复杂类型,将这些模型分离为各自独立的程序集可能会对您有所帮助。
前段时间,我在传递虚拟界面时写了一个short article,有时你可能不知道你要传输的是什么。
在WCF服务中使用数据缓存是否有任何价值也值得考虑。如果您使用的是默认实例,那么您不会通过一次调用保留此缓存。