如果我有实现的接口IMvxScreen
和多个具体类IMvxScreen
,是否可以一次解决所有实现?
public MyClass(IScreen[] screens)
{
不 - 这目前是不可能的。
您必须提供一个单独的接口/对象 - 例如一个IScreenService
.
假设您所有的屏幕都在同一个程序集中,我想您可以使用以下服务提供此功能:
public interface IScreenService
{
IEnumerable<IScreen> CreateAll();
}
public class ScreenService : IScreenService
{
public IEnumerable<IScreen> CreateAll()
{
return this.GetType().Assembly
.CreatableTypes()
.Inherits<IScreen>()
.Select(t => Mvx.IocConstruct(t));
}
}