Статический конструктор класса службы WCF, вызываемый при каждом вызове - PullRequest
2 голосов
/ 10 марта 2012

У меня есть класс Service, реализующий контракт следующим образом:

interface IContractFoo
{
    void Foo();
}

Class ServiceFoo() : IContractFoo
{
    public static ServiceFoo()
    {
        Log("Static constructor called");
    }

    void Foo()
    {
        Log("Foo called");
    } 
}

Я заканчиваю тем, что каждый раз, когда вызывается Foo API, вызывается статический конструктор. Итак, журнал выглядит так -

Статический конструктор с именем
Фу называется
Статический конструктор называется
Фу называется

Этого не должно быть, поскольку это статический конструктор. Есть идеи, что может пойти не так?

Спасибо за любую помощь

1 Ответ

2 голосов
/ 10 марта 2012

По умолчанию службы WCF используют модель «на вызов». Я не думаю, что пометка конструктора static изменит это поведение. Вы можете изменить это, используя атрибут ServiceBehavior или изменив настройки ServiceBehavior в файле web.config, связанном с этой службой.

Вот пара статей, которые могут помочь вам решить, какая модель подходит для ваших услуг:

...