ServiceBehavior属性是否由其他类继承?

时间:2012-01-24 07:44:28

标签: c# wcf inheritance attributes

我有几个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 个答案:

答案 0 :(得分:10)

是的,ServiceBehavior属性继承到子类,因为“ServiceBehaviorAttribute”类具有AttributeUsage属性,该属性未将“Inherited”值设置为False。

“AttributeUsageAttribute”类中“Inherited”的默认值为True。

一个简单的例子是在Abstract类中设置Namespace属性,并查看wsdl中反映的内容。