2016-09-01 4 views
0

私はIEntityというインターフェースを持っています。インターフェイスを使用してカスタム属性を強制する

このインターフェイスを実装するすべてのクラスに、クラスレベルの属性が必要です。

私atttributeは次のとおりです。

[System.AttributeUsage(System.AttributeTargets.Class)] 
    public class DbSchemaElementAttribute : System.Attribute 
    { 
     public string Name { get; set; } 
    } 

は、どのように私はクラスがIEntityを実施している場合、それはあまりにもこの属性を持たなければならないことを確認することができます。

これも可能ですか?インターフェイスは契約なので、これを強制する論理的な場所のようです。

答えて

1

.NETには、抽象クラスとインターフェイスの両方で、コンパイル時のチェックで必須属性を実装するために派生クラスに強制するメソッドは含まれていません。

属性を使用する必要がある場合は、このチェックの単位テストを実装するか、アプリケーションの開始時に簡単なチェックを実装することが考えられます。

アトリビュートの代わりにプロパティまたはメソッドを使用することをお勧めします。コンパイル時にチェックするのは簡単です。

関連する問題