[英]How to register multiple types by name using Unity?
我是Unity的新手(來自溫莎城堡(Castle Windsor)),所以我知道我想對依賴注入做什么,但是我不確定如何使用Unity來實現。
指導將不勝感激。
還有一些類似的實現:
public class Strategy
{
... etc
}
public class FooStrategy : Strategy
{
... etc
}
public class BarStrategy : Strategy
{
... etc
}
目前,我可以像這樣一一注冊:
container.RegisterType<IStrategy, FooStrategy>("FooStrategy");
container.RegisterType<IStrategy, BarStrategy>("BarStrategy");
var foo = container.Resolve<IStrategy>("FooStrategy");
Assert.IsTrue(foo.GetType() == typeof (FooStrategy));
我怎樣才能更有效地做到這一點? 我想通過實現名稱來注冊所有實現IStrategy的類型。
container.RegisterTypes(AllClasses.FromLoadedAssemblies().Where(t => typeof(Strategy).IsAssignableFrom(t)));
默認情況下,容器中使用的Name
似乎是實現名稱,因此最后它很瑣碎。
我唯一需要更改的是使用POCO作為基本類型,而不是接口。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.