BolterV2.MainWindow.MainNamespaceOfPlugin C# (CSharp) Method

MainNamespaceOfPlugin() private static method

private static MainNamespaceOfPlugin ( string pluginName ) : string
pluginName string
return string
        private static string MainNamespaceOfPlugin(string pluginName)
        {
            var decoder = AppDomain.CreateDomain("Decode_Assembly", AppDomain.CurrentDomain.Evidence,
                new AppDomainSetup { PrivateBinPath = "Plugins", });

            decoder.Load(pluginName);

            var ns = decoder.GetAssemblies()
                .Where(assem => assem.GetName().Name == pluginName)
                .SelectMany(assem => assem.GetTypes().Where(type => type.Name == "PluginMain"))
                .Select(type => type.Namespace)
                .FirstOrDefault();

            AppDomain.Unload(decoder);

            return ns;
        }