/// <summary> /// Constructor /// </summary> static WlyViewMgr() { var types = typeof(WlyViewMgr).Assembly.GetTypes(); IWlyUIView mainView = null; foreach (var t in types) { if (!typeof(WlyUIViewBase).IsAssignableFrom(t) || t.IsAbstract) { continue; } var attribute = t.GetCustomAttribute <WlyViewAttribute>(); if ((attribute == null) && !t.IsAbstract) { throw new InvalidOperationException($"界面{t.Name}没有附加界面属性"); } var view = Activator.CreateInstance(t) as IWlyUIView; _viewList.Add(view); if ((view != null) && (view.Type == WlyViewType.场景_主界面)) { view.Level = 0; mainView = view; } } // 界面检查 foreach (var v in Enum.GetValues(typeof(WlyViewType))) { if (Equals(v, WlyViewType.Unknow)) { continue; } if (_viewList.FirstOrDefault(o => Equals(o.Type, v)) == null) { throw new InvalidOperationException($"没有定义界面 {v}"); } } if (mainView == null) { throw new InvalidOperationException("未定义主界面"); } mainView.Init(); _viewList = _viewList.OrderByDescending(o => o.Level).ToList(); }