0

我在Windows Phone應用程序中使用Ninject。注入需要初始化參數的依賴項

我的邏輯包括IBarViewModel接口是:

public interface IBarViewModel 
    { 
     double Width { get; set; } 
     bool IsAchieved { get; set; } 
     CornerRadius Corner { get; set; } 
    } 

目前,僅存在一個IBarViewModel的implementatation - GenericBarViewModel。

所有的IViewModel實現器必須在創建時設置這三個主要屬性。

我想在運行時從我的代碼創建這些IBarViewModels的實例。我該怎麼做。

當我在編程反對的實現(類被簡稱爲Bar),我只是調用的對象初始化是這樣的:

_bars.Add(new Bar 
       { 
        Width = _totalWidth, 
        IsAchieved = false, 
        Corner = new CornerRadius(5, 5, 5, 5) 
       }); 

按回答這個問題:Inject value into injected dependency我可以通過一個參數給ninject模塊。

唯一的問題仍然是:我必須將我的ninject內核深入到邏輯中來執行這種參數化的依賴關係解析嗎?

+0

請參閱[這裏](http://stackoverflow.com/questions/2227548/creating-an-instance-using-ninject-with-additional-parameters-in-the-constructor)。讓你的類在構造函數中接受這些參數並指示ninject提供哪些值。 –

回答

1

我不認爲你應該爲此使用IoC。它沒有任何意義。

爲什麼不簡單地讓GenericBarViewModel爲3個屬性設置默認值,使其變爲抽象,並讓其他任何「Bar」ViewModel實現繼承自GenericBarViewModel

什麼究竟是你想要做什麼?

+0

克勞斯,這正是我昨天所做的。謝謝。 –