1
我剛開始使用Ninject,我有一個問題。可以說我有一個TaxCalculator類,它具有Sale參數的構造函數。然後,我有ITaxCalculator成員的Sale類。通常我會在銷售結構中創建TaxCalculator實例,將「this」作爲參數。用Ninject注入'this'
public class Sale
{
private ITaxCalculator taxCalculator;
public Sale()
{
this.taxCalculator = new TaxCalculator(this);
}
}
public class TaxCalculator : ITaxCalculator
{
private Sale sale;
public TaxCalculator(Sale sale)
{
this.sale = sale;
}
}
是否有可能使用Ninject完成此操作?下面的代碼顯然不起作用。
public class Sale
{
private ITaxCalculator taxCalculator;
[Inject]
public void SetTaxCalculator(ITaxCalculator taxCalculator)
{
this.taxCalculator = taxCalculator;
}
}
....
using (IKernel kernel = new StandardKernel())
{
Sale sale = null;
kernel.Bind<ITaxCalculator>()
.To<TaxCalculator>()
.WithConstructorArgument("sale", sale);
sale = kernel.Get<Sale>();
}
我想Ninject做的是調用SetTaxCalculator方法調用構造函數銷售後。
感謝您的回覆,在我的應用程序中,我的問題比我在這裏作爲例子寫得更復雜。不過,我會考慮你的建議。 屬性注入可能是我正在尋找,謝謝。 – Brazol 2013-03-04 14:00:59