C# 使用WCF Web服务检索服务器接收的数据

C# 使用WCF Web服务检索服务器接收的数据,c#,wcf,web-services,events,servicehost,C#,Wcf,Web Services,Events,Servicehost,我想使用一个web服务(由于newServiceHost(typeof(..)),在我的main中创建),我想检索服务器接收到的数据,以便在我的main中处理它 我从一个简单的事件处理程序开始,但这是不可能的,因为我必须创建一个实例,而不是使用typeof 还有其他解决方案吗?您可以使用单例WCF服务。您需要使用[ServiceBehavior]装饰服务类,并指定InstanceContextMode.Single,然后将服务类的实例传递给ServiceHost构造函数。请注意:这将*序列化所有

我想使用一个web服务(由于
newServiceHost(typeof(..))
,在我的main中创建),我想检索服务器接收到的数据,以便在我的main中处理它

我从一个简单的事件处理程序开始,但这是不可能的,因为我必须创建一个实例,而不是使用
typeof


还有其他解决方案吗?

您可以使用单例WCF服务。您需要使用[ServiceBehavior]装饰服务类,并指定InstanceContextMode.Single,然后将服务类的实例传递给ServiceHost构造函数。

请注意:这将*序列化所有请求(处理一个接一个请求),从而可能在系统中造成主要瓶颈;或者你必须处理多线程编程,这既困难又棘手,而且容易出错……嗯,我听说过,但我不知道将来是否还能使用它,所以我想找到一些不同的东西。没有其他解决办法?顺便说一句,谢谢@marc_s:嗯,如果你使用每次呼叫或每次会话服务,你仍然需要“处理多线程编程”。我的意思是,服务类当然是线程安全的,但是您仍然需要保护的任何其他资源。所以我不愿意在这里考虑它。如果你有一个呼叫服务,并且你存储从数据库中接收到的数据——你需要在哪里处理多线程?使用每次调用比创建一个完全多线程的单实例简单得多。…@marc_s:真的吗?将数据存储在数据库中意味着不再需要处理多线程?你只需要使用一个数据库就可以了?很抱歉,这太简单了。你不能处理请求,从调用者那里获取数据,将其放入持久存储(如数据库),然后让你的主应用程序从那里检索数据吗?不确定。。。因为我必须得到任何更新的警告。