public static TTypeToResolve ResolveDialog <TTypeToResolve>(params object[] parameters) where TTypeToResolve : ICommonDialog { Type resolveType = typeof(TTypeToResolve); int num = AppHost.Plugins.Count; for (int i = 0; i < num; i++) { var dlgPlugin = AppHost.Plugins[i] as IDialogReplacement; if (dlgPlugin != null && dlgPlugin.Category == PluginCategory.DialogReplacement) { var dlgType = dlgPlugin.GetDialogType(); if (SysUtils.ImplementsInterface(dlgType, resolveType) && dlgPlugin.Enabled) { return((TTypeToResolve)dlgPlugin.CreateDialog(parameters)); } } } return(Container.Resolve <TTypeToResolve>(parameters)); }
public void Test_SysUtils_ImplementsInterface() { Assert.IsTrue(SysUtils.ImplementsInterface(typeof(LangManager), typeof(ILangMan))); Assert.IsFalse(SysUtils.ImplementsInterface(typeof(LangManager), typeof(INamesTable))); }