簡體   English   中英

如何使用Unity按名稱注冊多種類型?

[英]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.

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