自我主机WCF Service主机对象生命周期
-
26-10-2019 - |
题
为了启动我的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连接都不会重新制定。
不隶属于 StackOverflow