5

假设我有一个 interface IAppModule,由几个类实现。是否有可能编写一个只能应用于暴露类型的自定义属性IAppModule?如果是这样,怎么做?

4

1 回答 1

10

不,不幸的是这是不可能的。

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

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

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

于 2013-09-03T13:09:34.467 回答