Атрибут ServiceBehavior наследуется другими классами? - PullRequest
3 голосов
/ 24 января 2012

У меня есть несколько служб WCF, и эти службы используют несколько общих методов.Итак, я создал базовый класс (не сервис WCF) с этими методами и сделал все сервисы WCF наследовать от этого класса.Примерно так:

[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.PerCall)]
    public abstract class BaseService

И один из сервисов WCF:

public class ExampleService : BaseService, IExampleService
    {

Я использую атрибут ServiceBehavior для установки значений ConcurrencyMode и InstanceContextMode, и мой вопрос:правильно пометить базовый класс атрибутом ServiceBehavior и ожидать, что все службы будут наследовать значения атрибута ServiceBehavior, или я должен пометить один за другим все службы WCF?

1 Ответ

10 голосов
/ 24 января 2012

Да, атрибут ServiceBehavior наследуется дочерним классам, поскольку класс «ServiceBehaviorAttribute» имеет атрибут AttributeUsage, который не устанавливает значение «Inherited» в False.

Значением по умолчанию для «Inherited» является True в классе «AttributeUsageAttribute».

Простым примером было бы установить свойство Namespace в вашем классе Abstract и увидеть, что отражено в вашем wsdl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...