試圖教我自己SimpleInjector和我掌握的基本知識,但需要一些幫助。通過簡單注射器傳遞類變量
本質上我想通過簡單的注入器來傳遞一個對象,而我已經填充了這個對象而不是一個新的對象。
示例情況我是如下:
ITeaService:
public interface ICup
{
string CupName { get; set; }
List<string> Ingredients { get; set; }
}
public class Cup : ICup
{
public string CupName { get; set; }
public List<string> Ingredients { get; set; }
}
public interface ITeaService
{
ICup GetTea();
}
TeaService:
public class TeaService : ITeaService
{
private ICup _cup;
public TeaService(ICup cup)
{
_cup = cup;
}
public ICup GetTea()
{
this._cup.Ingredients.Add("Tea bag");
this._cup.Ingredients.Add("Hot water");
return this._cup;
}
}
測試:
var container = new SimpleInjector.Container();
container.Register<ITeaService, TeaService>();
container.Register<ICup, Cup>();
container.Verify();
// Act
var cp = container.GetInstance<ICup>();
cp.CupName = "Daniel";
var teaService = container.GetInstance<ITeaService>();
var cup = teaService.GetTea();
任何想法我如何傳遞預先定義的C.通過?是我指定了CupName的變量cp?
也許你的例子只是爲了學習的目的,但在實踐中這個例子沒有任何意義,甚至可能使事情複雜化並使你困惑。 'Cup'似乎是一個實體,實體不是由DI容器管理的。 DI容器管理服務和服務通常是不可變的。 '杯'然而是一個可變的實體。 – Steven