c# - 是否可以将属性的使用限制在某些接口(interface)上?

标签 c# .net css custom-attributes

假设我有一个接口(interface) IAppModule,由几个类实现。是否可以编写一个只能应用于公开 IAppModule 的类型的自定义属性?如果是,怎么办?

最佳答案

不,很遗憾,这是不可能的。

但是,当使用反射处理属性时,您可以检查装饰类型是否是实现 IAppModule 接口(interface)的类。

typeof(someType).GetInterfaces().Contains(typeof(IAppModule))

它不会阻止您的属性的用户错误地使用它(在任何其他类中),但是如果您决定采用这种方法,我建议您提供非常清晰的文档来描述应该如何使用该属性并添加我上面提到的验证层。

关于c# - 是否可以将属性的使用限制在某些接口(interface)上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18593150/

相关文章:

javascript - 仅当用户未将鼠标悬停在另一个类上时才单击功能

css - header 宽度为 : 100%; doesn't act as it should

c# - 生成的 MD5 散列的大小

c# - 通过麦克风播放时识别音符

c# - 如何在未安装 Visual Studio 的计算机上安装 Windows 服务?

c# - 为什么 Enum.ToString() 不返回正确的枚举名称?

c# - 是否可以在一个操作中执行多个存储过程?

html - 单个图像内元素的边框

c# - 如何使用 MAPI 获取 Outlook 联系人组?

c# - POCO 对象中的非空约束