src/ZKEACMS/PluginBase.cs

(开头部分) 10KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

/* http://www.zkea.net/ 
 * Copyright (c) ZKEASOFT. All rights reserved. 
 * http://www.zkea.net/licenses */

using Easy.Mvc.Plugin;
using Easy.Mvc.Resource;
using Easy.Mvc.Route;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Reflection;
using ZKEACMS.Widget;
using Easy.Extend;
using System.IO;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection.Extensions;
using ZKEACMS.WidgetTemplate;
using ZKEACMS.Route;
using System.Linq;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyModel;
using Microsoft.AspNetCore.Mvc.ApplicationParts;
using Microsoft.AspNetCore.Mvc.Razor.Compilation;
using Microsoft.AspNetCore.Razor.Hosting;
using Microsoft.Extensions.Primitives;

namespace ZKEACMS
{
    public abstract class PluginBase : ResourceManager,
        IRouteRegister,
        IPluginStartup,
        IApplicationPartTypeProvider,
        ICompilationReferencesProvider,
        IApplicationFeatureProvider<ViewsFeature>
    {
        private const string ControllerTypeNameSuffix = "Controller";

        public Assembly Assembly { get; set; }
        public IWebHostEnvironment WebHostEnvironment { get; private set; }
        public abstract IEnumerable<RouteDescriptor> RegistRoute();
        public abstract IEnumerable<AdminMenu> AdminMenu();
        public abstract IEnumerable<PermissionDescriptor> RegistPermission();
        public abstract IEnumerable<WidgetTemplateEntity> WidgetServiceTypes();
        public abstract void ConfigureServices(IServiceCollection serviceCollection);
        public virtual void ConfigureApplication(IApplicationBuilder app, IWebHostEnvironment env)
        {

        }
        public virtual void ConfigureMVC(IMvcBuilder mvcBuilder)
        {
            mvcBuilder.ConfigureApplicationPartManager(manguage =>
            {
                manguage.FeatureProviders.Add(this);
                manguage.ApplicationParts.Add(this);
            });
        }
        static Dictionary<Type, string> pluginPathCache = new Dictionary<Type, string>();
        static Dictionary<Type, string> pluginNameCache = new Dictionary<Type, string>();
        public static HashSet<string> ActiveWidgetTemplates
后面还有 228 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。