我有一个名为的接口IStructuredReader
,它从文件中读取一些结构化数据并将其显示在表单中。它有一个名为的成员Sync()
,当实现时,它会扫描数据以查找用户指定的数据模式。
一些实现IStructuredReader
没有同步功能。这些实现会抛出NotImplementedException
该Sync()
方法。我希望能够检查此方法是否正在实施,以便如果没有,我可以使表单上的按钮变暗。
我可以想到很多方法可以做到这一点,所有这些都显得笨拙和复杂:
将方法分离
Sync
到自己的接口中,为那些支持能力的实现继承它,并尝试将读取器对象强制转换为它以识别能力,编写一个
NotImplementedAttribute
,用它装饰成员,并使用反射检查属性是否存在,向接口添加一个
HasSyncCapability
布尔属性。
有没有一种规范的方式来做到这一点?