从.NEt系统类中提取接口

时间:2010-04-19 06:44:20

标签: visual-studio visual-studio-2008

使用Visual Studio时,很容易从我自己编写的类中提取界面。我右键单击该类并选择“Refactor”,然后选择“Extract Interface”。

让我们假设我想创建一个ConfigurationManager包装器并围绕它编写一些测试。快速执行此操作的方法是通过右键单击ConfigurationManager从ConfigurationManager中提取接口,然后选择“Go To Definition”,然后从类内部选择“Refactor”,然后选择“Extract Interface”。然后我只是创建我的包装类,继承自我新创建的接口,然后实现它,我的包装类有一个很好的起点。

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

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

由于

1 个答案:

答案 0 :(得分:3)

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

修改

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

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

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