2012-01-24 12 views
3

私はいくつかのWCFサービスを持っており、それらのサービスはいくつかの共通の方法を共有しています。だから、これらのメソッドで基本クラス(WCFサービスではない)を作成し、すべてのWCFサービスをこのクラスから継承するようにしました。ServiceBehavior属性は他のクラスによって継承されていますか?

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

そして、WCFサービスの1:

public class ExampleService : BaseService, IExampleService 
    { 

私はConcurrencyModeとInstanceContextMode値を設定するServiceBehavior属性を使用していて、私の質問は:マークする正しいです、このような何かすべてのサービスがServiceBehavior属性の値を継承することを期待するか、すべてのWCFサービスを1つずつマークする必要がありますか?

+3

なぜドキュメントを見たり、その属性の 'AttributeUsage'を調べてみませんか? – leppie

+0

私はServiceBehaviorのドキュメントで継承について何も見つけ出していないので、attributes.AuthorityのAttributeUsageを調べる方法はわかりませんが、あなたのRTFMの回答に感謝します。非常に便利。 –

+0

あなたは私の質問を全く理解していないと思います。 –

答えて

10

はい、「ServiceBehaviorAttribute」クラスに「継承」値をFalseに設定しないAttributeUsage属性があるため、ServiceBehavior属性は子クラスに継承されます。

"Inherited"のデフォルト値は "AttributeUsageAttribute"クラスではTrueです。

単純な例として、AbstractクラスのNamespaceプロパティを設定し、それがあなたのwsdlに反映されていることを確認します。

+0

デフォルトが真であることは奇妙です。説明のため+1。 – leppie

+1

@leppie継承が「is a」関係であると考えるなら、なぜ「Giraffe」はすべてのAnimal属性を継承しないのでしょうか? –

関連する問題