Unity:如何将派生类型解析为 IEnumerable?
我有基类和几个派生类。我如何通过Unity将这些派生类型解析为IEnumerable集合?我已经尝试过类似的方法
var myObjectList = (IEnumerable<BaseClass>) UnityContainerFactory.UnityContainer.ResolveAll(typeof(BaseClass));
,但它会引发 invalidCastException
i have base class and several derived classes. how can i resolve these derived types by means of Unity into IEnumerable collection? i've tried smth like
var myObjectList = (IEnumerable<BaseClass>) UnityContainerFactory.UnityContainer.ResolveAll(typeof(BaseClass));
But it raises an invalidCastException
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该只使用
ResolveAll
的通用重载。或者,使用
Enumerable.Cast
:You should just use the generic overload of
ResolveAll
.Alternatively, use
Enumerable.Cast
:我没有使用过 Unity,但假设您使用的是 .NET 3.5 或更高版本,您可以尝试使用 LINQ:(
您可能需要调用
ToList()
将其具体化为List< ;基类>
。)I haven't used Unity, but assuming you're on .NET 3.5 or higher, you might try using LINQ:
(You may want to call
ToList()
to materialize it into aList<BaseClass>
.)