Atomia.Web.Frame.MvcApplication.GetPluginAssembly C# (CSharp) Метод

GetPluginAssembly() приватный статический Метод

Gets the plugin assembly.
private static GetPluginAssembly ( GlobalEventDefaultHandler configHandler ) : Assembly
configHandler GlobalEventDefaultHandler The config handler.
Результат System.Reflection.Assembly
        private static Assembly GetPluginAssembly(GlobalEventDefaultHandler configHandler)
        {
            if (HttpContext.Current != null && HttpContext.Current.Server != null)
            {
                GlobalEventsDefaultHandler globalEvents = new GlobalEventsDefaultHandler();

                string folderPath = HttpContext.Current.Server.MapPath("~/" + AppConfig.Instance.WebFramePlugins.Path.Trim(new[] { '/', '\\', ' ' }));

                string binFolderPath = HttpContext.Current.Server.MapPath("~/bin");

                globalEvents.PluginAssemblyLoader(folderPath, binFolderPath);
            }

            Assembly pluginAssembly = null;

            if (AppDomain.CurrentDomain.GetAssemblies().Any(asmbl => asmbl.FullName == configHandler.ClassAssembly))
            {
                pluginAssembly = AppDomain.CurrentDomain.GetAssemblies().First(asmbl => asmbl.FullName == configHandler.ClassAssembly);
            }
            else if (!configHandler.ClassAssembly.Contains("Version") && !configHandler.ClassAssembly.Contains("Culture") && !configHandler.ClassAssembly.Contains("PublicKeyToken") && AppDomain.CurrentDomain.GetAssemblies().Any(asmbl => !String.IsNullOrEmpty(asmbl.FullName) && asmbl.FullName.StartsWith(configHandler.ClassAssembly)))
            {
                pluginAssembly = AppDomain.CurrentDomain.GetAssemblies().First(asmbl => !String.IsNullOrEmpty(asmbl.FullName) && asmbl.FullName.StartsWith(configHandler.ClassAssembly));
            }

            return pluginAssembly;
        }