none
型を限定したカスタム属性の作成 RRS feed

  • 質問

  • カスタム属性を作成しています。
    Integer 型のプロパティ以外に属性を付与するとビルドエラーにしたいと思っています。

    [AttributeUsage(AttributeTargets.Property)]
    class CustomAttribute : Attribute { }
    /*---------------------------------------------------*/
    class Demo
    {
        [Custom]
        public int OKProperty { get ; set ; }

        [Custom]            // ビルドエラーにしたい
        public double NGProperty { get ; set ; }
    }

    実行時に型チェックをして例外を起こすより、出来る限りビルドエラーにしたいと思います。
    MSDNフォーラムで「カスタム属性」で検索したり、MSDN Forums(en-US)で「"custom attribute" target」で検索したのですが、似たような質問を見つけられませんでした。

    もしこれを実現する方法をご存知であれば、どうぞご教示ください。

    2010年1月13日 2:16

回答

  • C# としてビルドエラーにする方法は、おそらくありません。

    Visual Studio 上に限定してビルドエラーにする場合、Visal Studio アドインとしてカスタム言語処理をすれば可能だとは思います。詳細は、Visual Studio SDK (や 旧 VSIP SDK) の Language Services セクションを見てください。
    • 回答としてマーク vessa 2010年1月13日 4:44
    2010年1月13日 3:43

すべての返信

  • C# としてビルドエラーにする方法は、おそらくありません。

    Visual Studio 上に限定してビルドエラーにする場合、Visal Studio アドインとしてカスタム言語処理をすれば可能だとは思います。詳細は、Visual Studio SDK (や 旧 VSIP SDK) の Language Services セクションを見てください。
    • 回答としてマーク vessa 2010年1月13日 4:44
    2010年1月13日 3:43
  • ありがとうございます。

    Visual Studio のアドインについては不勉強なので、今後の宿題にします。
    2010年1月13日 4:45