如何限制接口方法的属性

时间:2011-11-10 11:33:48

标签: c#

我想创建一个自定义属性,但将其用法限制为接口的方法。是否有可能在C#中做到这一点?

当我尝试这样做时,我想要编译错误:

public class SomeClass
{
   [MyAttribute]
   public void SomeMethod() { ... }
}

[MyAttribute]
public interface IMyInterface { ... }

我希望能够只做到这一点:

public interface IMyInterface
{
   [MyAttribute]
   void SomeMethod();
}

我可以将我的属性限制为接口或方法,但不能同时限制两者

[AttributeUsage(AttributeTargets.Method)]

3 个答案:

答案 0 :(得分:3)

这可以针对子类实现,但不能针对接口实现。看到这个问题: Specify required base class for .NET attribute targets

答案 1 :(得分:3)

这是不可能的。看看AttributeTargets枚举。您可以将其限制为方法,但不能将其限制为接口的接口

答案 2 :(得分:1)

没有。你不能。检查MSDN上的AttributeTarget枚举。