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:谢谢。这解决了我的问题! –