我有一个Service类实现合同如下:
interface IContractFoo
{
void Foo();
}
Class ServiceFoo() : IContractFoo
{
public static ServiceFoo()
{
Log("Static constructor called");
}
void Foo()
{
Log("Foo called");
}
}
我要说的是,每次调用Foo API时,都会调用静态构造函数。所以,日志看起来像这样 -
静态构造函数称为
Foo称为 静态构造函数称为 Foo叫
这不应该发生,因为这是一个静态构造函数。知道会出现什么问题吗?
感谢您的帮助
答案 0 :(得分:2)
默认情况下,WCF服务使用“每次调用”模型。我不认为使用static
标记构造函数会改变该行为。您可以使用ServiceBehavior
属性或通过更改与此服务关联的web.config文件中的ServiceBehavior设置来更改此设置。
以下几篇文章可以帮助您确定哪种模式适合您的服务: