是由其他类继承的ServiceBehavior属性

本文关键字:ServiceBehavior 属性 继承 其他 | 更新日期: 2023-09-27 18:21:09

我有几个WCF服务,这些服务共享一些常见的方法。因此,我用这些方法创建了一个基类(而不是WCF服务),并使所有WCF服务都从这个类继承。类似这样的东西:

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

WCF服务之一:

public class ExampleService : BaseService, IExampleService
    {

我正在使用ServiceBehavior属性来设置ConcurrencyMode和InstanceContextMode值,我的问题是:用ServiceBehavir属性标记基类并期望所有服务都继承ServiceBehaviar属性的值是正确的,还是应该逐个标记所有WCF服务?

是由其他类继承的ServiceBehavior属性

是的,ServiceBehaviorAttribute被继承到子类,因为"ServiceBehavior Attribute"类具有AttributeUsage属性,该属性不会将"inherited"值设置为False。

"AttributeUsageAttribute"类中"Inherited"的默认值为True。

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