如果我有接口IMvxScreen
和多个实现IMvxScreen
的具体类,是否可以一次解决所有实现?
public MyClass(IScreen[] screens)
{
答案 0 :(得分:2)
不 - 目前无法实现。
您必须提供单独的界面/对象 - 例如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));
}
}