为了启动我的WCF服务,我使用以下内容:

selfHost = new ServiceHost(typeof(MyServiceClass));
selfHost.Open();

在某个时候,这将创建一个实例 MyServiceClass. 。它会根据请求创建一个实例或实例吗?

有帮助吗?

解决方案

如果要将其限制到一个实例,则可以在外部实例化服务类,并将实例传递到ServiceHost:

var myservice = new MyServiceClass();
selfHost = new ServiceHost(typeof(MyServiceClass), myservice); // forces singleton pattern
selfHost.Open();

其他提示

默认情况下,这是每个请求的实例,但是您可以更改此内容。例如,您可以写自己的 iinstanceProvider 并自己管理服务班的生活。

所有这些答案都是正确的,但是它们似乎比您要问的要复杂。它是由每个呼叫,每个会话还是单顿创建实例的基础知识。 InstanceContextMode 这是您服务类的属性。开始在那里阅读。

它将根据请求创建实例。如果您想要一个实例,则可以使用静态类。应用程序的寿命存在静态类。每次打电话或新的WCF连接都不会重新制定。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top