Ejemplo n.º 1
0
            private static PluginInstance ActiveAndAdd(PackageMetadata metadata, Type type)
            {
                if (metadata == null || type == null)
                {
                    return(null);
                }

                if (StringUtils.EqualsIgnoreCase(metadata.Id, "SS.Home"))
                {
                    return(null);
                }

                var s = Stopwatch.StartNew();

                //var plugin = (IPlugin)Activator.CreateInstance(type);

                var plugin = (PluginBase)Activator.CreateInstance(type);

                plugin.Initialize(metadata);

                var service = new ServiceImpl(metadata);

                plugin.Startup(service);

                PluginContentTableManager.SyncContentTable(service);
                PluginDatabaseTableManager.SyncTable(service);

                return(new PluginInstance(metadata, service, plugin, s.ElapsedMilliseconds));
            }
Ejemplo n.º 2
0
            // TODO: 增加SINGLETON约束
            private static PluginInfo ActiveAndAdd(PackageMetadata metadata, Type type)
            {
                if (metadata == null || type == null)
                {
                    return(null);
                }

                var s = Stopwatch.StartNew();

                //var plugin = (IPlugin)Activator.CreateInstance(type);

                var plugin = (PluginBase)Activator.CreateInstance(type);

                plugin.Initialize(metadata, Environment, new PluginApiCollection
                {
                    AdminApi   = new AdminApi(metadata),
                    ConfigApi  = new ConfigApi(metadata),
                    ContentApi = ContentApi.Instance,
                    DataApi    = DataProvider.DataApi,
                    FilesApi   = FilesApi.Instance,
                    ChannelApi = ChannelApi.Instance,
                    ParseApi   = ParseApi.Instance,
                    PluginApi  = new PluginApi(metadata),
                    SiteApi    = SiteApi.Instance,
                    UserApi    = UserApi.Instance
                });

                var service = new PluginService(metadata);

                plugin.Startup(service);

                PluginContentTableManager.SyncContentTable(service);
                PluginDatabaseTableManager.SyncTable(service);

                return(new PluginInfo(metadata, service, plugin, s.ElapsedMilliseconds));
            }