示例#1
0
        public List <PluginLoader.LoadedPlugin> LoadPlugins()
        {
            RemoveExtractedPluginFolders();

            var pluginFiles = Root
                              .GetFiles("*.plugin")
                              .Select(fi => fi.FullName)
                              .ToList();

            if (!pluginFiles.Any())
            {
                throw new ExpectedException($"You need to have at least one local *.plugin file at '{Root.FullName}'");
            }

            var loadedPlugins = new PluginLoader
            {
                Log     = Log4NetLogger.Create(Log),
                Verbose = Verbose
            }
            .LoadPlugins(pluginFiles);

            var jsonPlugin = loadedPlugins
                             .FirstOrDefault(lp => IsJsonPlugin(lp.Manifest));

            if (jsonPlugin != null)
            {
                var result = AssemblyQualifiedNameParser.Parse(jsonPlugin.Manifest.AssemblyQualifiedTypeName);

                JsonPluginVersion = AquariusServerVersion.Create(result.Version);
                JsonPluginPath    = jsonPlugin.Path;
            }

            return(loadedPlugins);
        }
示例#2
0
        protected virtual string FormatType(string assemblyQualifiedName)
        {
            var parser        = new AssemblyQualifiedNameParser();
            var qualifiedName = parser.Parse(assemblyQualifiedName);
            var formatString  = new StringBuilder("T");

            if (Settings.IncludeAssemblyVersionWithType)
            {
                formatString.Append('V');
            }
            if (Settings.IncludeAssemblyCultureWithType)
            {
                formatString.Append('C');
            }
            if (Settings.IncludeAssemblyKeyWithType)
            {
                formatString.Append('K');
            }

            return(qualifiedName.ToString(formatString.ToString()));
        }