2010-04-30 54 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。

然後使用啓用了「指令」的「優化」配置文件。

相關問題