2010-04-30 42 views
5

我想自动执行Visual Studio 2010/Resharper 5自动插入导入指令,将我的内部命名空间放入命名空间球体中。就像这样:使用ReSharper和Visual Studio 2010自动执行重构导入/使用指令

using System; 
using System.Collections.Generic; 
using System.Linq; 
using StructureMap; 
using MyProject.Core;   // <--- Move inside. 
using MyProject.Core.Common; // <--- Move inside. 

namespace MyProject.DependencyResolution 
{ 
    using Core; 
    using Core.Common; // <--- My internal namespaces to be here! 

    public class DependencyRegistrar 
    { 
     ........... 
    } 
} 

目前,我在做手工,问题是,与每一个重构的使用指令往上走,到页面的开始。

+2

只是好奇..为什么?在任何情况下,你都不应该在一个文件中拥有多个类...... – 2010-04-30 05:26:47

+0

因为它使代码更具可读性......至少对我而言。 – 2010-04-30 05:34:17

+0

还有一些其他有理由想要这样做。类型隐藏/覆盖 - 编译器会偏好位于内部命名空间的类型,而不是外部的同名类型。当您在自定义程序集中指定了一个类型并且不想诉诸别名来解决代码中的冲突引用时,这会很有用。此外,扩展方法聚合,即内部名称空间中指定的扩展方法将添加到外部名称空间中的扩展方法。 – ricardo 2013-11-01 13:27:03

回答

0

没有选择来实现这一点。因此,最好的行动可能是一个你可以轻松实现的约定。

+0

答案是http://stackoverflow.com/a/825256/1421015 – Telemat 2015-02-13 05:46:50

0

看到this在另一个答案。

+0

这并不能解决问题,因为可以选择移动所有的指令,而不仅仅是项目指令。 – 2010-05-24 22:28:35

0

我认为如果语句是(全部)在命名空间声明之外,或者(全部)在其内部,则可读性更好。

using声明中,首先使用项目声明对项目声明进行排序(按照您的示例代码)。

ReSharper的如下两个上述约定,所以我建议坚持那些:)

+1

我不同意。我希望这将是第三种选择。 – 2010-08-05 03:13:35

3

就R#5.0:

ReSharper->工具 - >清理代码。或者只需按Ctrl + E,Ctrl + C。

然后使用启用了“指令”的“优化”配置文件。

相关问题