从 .NEt System 类中提取接口

Tho*_*mas 5 visual-studio-2008 visual-studio

使用 Visual Studio 时,可以轻松地从我自己编写的类中提取接口。我右键单击该类并选择“重构”,然后选择“提取接口”。

让我们假设我想创建一个 ConfigurationManager 包装器并围绕它编写一些测试。一种快速的方法是从 ConfigurationManager 中提取接口,方法是右键单击它,然后“转到定义”,然后从类内部选择“重构”,然后选择“提取接口”。然后我只需创建我的包装类,从新创建的接口继承,然后实现它,我的包装类就有了一个很好的起点。

但是,从任何 .NET 系统类中提取接口是不可能的,可能是因为它只是有关类的元数据,而不是类本身(或者我做错了)。

有没有一种简单的方法可以完成我想要完成的任务?我想确保我不会浪费时间输入不需要输入的内容。

谢谢

Mar*_*ner 3

问题不在于提取接口 - 您也可以“手动”执行此操作,但是您无法告诉 CLR 系统定义的配置管理器实现了此接口,因为此(元)信息存储在您无法修改的框架程序集。

编辑:

要简化“手动提取”,您可以单击类型上的右键,然后选择“转到定义”。Visual Studio 从元数据创建类定义(没有实现)。然后,您可以使用复制并粘贴到新文件中。无论如何,你仍然需要手动进行一些修改

  • class关键字替换为interface
  • 删除所有非公共方法/属性
  • 删除publicoverride访问修饰符(它们在接口定义中无效)

使用搜索和替换可以轻松完成此操作。您甚至可以通过这种方法获得文档字符串。

  • 是的,但我想知道是否有一种更快的方法可以从任何 .NET System 类(如 ConfigurationManager)中提取接口,而无需“手动”执行。 (2认同)