簡體   English   中英

依賴注入和未使用的構造函數

[英]Dependency injection and unused constructors

所以我使用windsor依賴注入:

container.Register(Component.For<IX>().ImplementedBy<X>().LifestyleSingleton());

我的問題(例如)是在X類的構造函數中,我不能輕易看到使用了該構造函數。 事實上,Visual Studio 告訴我它沒有被使用:

0 篇參考文獻

這有點煩人 - 很難發現死代碼。

你如何解決這個問題?

沒有什么可修復的。

解析時,容器調用構造函數來初始化 object。

IX x = container.Resolve<IX>();

因此,Visual Studio 不會從代碼中看到對該構造函數的任何顯式調用。

理想情況下,目標 class 應該只有一個遵循顯式依賴原則的構造函數。

public class X : IX {
    private readonly IDependency dependency;

    public X(IDependency dependency) {
        this.dependency = dependency;

        //...
    }

    //...
}

這將確保唯一的構造函數是容器在解析 class 時使用的構造函數。

如果有人正在積極測試他們的代碼或遵循 TDD,那么在支持測試中應該有對所用代碼的引用。

[TestMethod]
public void X_Should_Do_Something() {
    // Arrange

    //...

    IX subject = new X(...);

    // Act
    var result = subject.SomeMember();

    // Assert
    //...
}

其中顯式調用用於安排被測對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM