我想创建一个自定义属性,但将其用法限制为接口的方法。是否有可能在C#中做到这一点?
当我尝试这样做时,我想要编译错误:
public class SomeClass
{
[MyAttribute]
public void SomeMethod() { ... }
}
[MyAttribute]
public interface IMyInterface { ... }
我希望能够只做到这一点:
public interface IMyInterface
{
[MyAttribute]
void SomeMethod();
}
我可以将我的属性限制为接口或方法,但不能同时限制两者
[AttributeUsage(AttributeTargets.Method)]
答案 0 :(得分:3)
这可以针对子类实现,但不能针对接口实现。看到这个问题: Specify required base class for .NET attribute targets
答案 1 :(得分:3)
这是不可能的。看看AttributeTargets枚举。您可以将其限制为方法,但不能将其限制为接口的接口。
答案 2 :(得分:1)
没有。你不能。检查MSDN上的AttributeTarget枚举。