2

我想在我的一個類中注入一個依賴項,並且我不知道是否存在像ResharperDevExpress這樣的工具的重構。通過使用Resharper或DevExpress方法的依賴注入

這裏是我的類:

public class ClassWithInjections 
    { 
     private Dependency _fieldInjected; 
    } 

    public class Dependency 
    { 

    } 

和最終的結果,我希望它看起來像:(請注意,現場,現在可以通過該方法Initialize初始化)

public class ClassWithInjections 
    { 
     private Dependency _fieldInjected; 

     public void Initialize(Dependency fieldInjected) 
     { 
     _fieldInjected = fieldInjected; 
     } 
    } 

我想能夠只激活一個重構的選擇,同時指定用鼠標光標,然後,如果我想用注射的方法,屬性或構造的依賴,可以給我建議的工具,我的領域。

隨着Resharper,你可以做到這一點與 '封裝字段'(按Ctrl + + [R),或創建一個與代碼生成工具構造(Alt鍵 - 插入),但我不沒有找到任何選項來將我的依賴注入'方法'技術。

有人有解決辦法嗎?

+0

@AustinSalonen這正是我在問題結尾處所說的,但它不是我想要的注射類型。 – Samuel

+0

啊,誤解了。 –

回答

1

您可以使用DevExpress Refactor! Pro > Create Setter Method重構選項來達到此目的。

+0

Arggggggg !!!每當我想要「重新安裝」DevExpress時,我總是擁有Resharper,但Visual Studio看起來像是一隻肥胖的小豬,速度越來越慢。我想我會保留Resharper並手動執行重構。謝謝米哈伊爾。 – Samuel

4

首先的。你不應該使用方法注入依賴關係。 Read here。我只會使用屬性注入來解決循環依賴問題。

這留下了構造函數注入。

Resharper可以幫助你。在該字段上按ALT+ENTER,然後選擇「在構造函數中初始化」

我沒有發現任何選項可以用'method'技術注入我的依賴項。

好吧。它不存在,因爲您應該避免這種情況;)

+0

就像我在我的問題說,我知道如何從用充電器構造函數注入,我知道注射液與方法的幫助下利弊。我知道方法注入可以在封裝的概念中創建暫時耦合,但我想在我的情況下這樣做。 – Samuel

+0

@jgauffin:謝謝。這解決了我的問題! –