示例#1
0
 public void Initialize(PluginInfo info)
 {
     pluginInfo   = info;
     PluginConfig = JsonConvert.DeserializeObject <ConfigInfo>(info.Config);
     Operate.Init();
     WebIoc.Register(b => b.Register(c => new Loger(PluginIoc.Container.Resolve <ILogOperate>())).As <ILoger>().SingleInstance(), assemblyGuid, info.Status == PluginStatus.Usable);
 }
示例#2
0
        public ActionResult Index3()
        {
            FunctionInfo info = new FunctionInfo();

            WebIoc.Register(test, showstr);
            ViewBag.show = showstr;
            return(View());
        }
示例#3
0
        public void Start()
        {
            IFileOperate parser = WebIoc.Container.Resolve <IFileOperate>();

            pluginInfo.Status = PluginStatus.Usable;
            parser.SavePluginInfo(pluginInfo);
            WebIoc.Register(b => b.Register(c => new Session(c.ResolveNamed <ICache>("session"))).As <Sun.Core.Session.ISession>().SingleInstance(), guid);
            WebIoc.Instance.StartAssembly(guid);
        }
示例#4
0
 public void Initialize(PluginInfo info)
 {
     if (null == pluginInfo)
     {
         pluginInfo = info;
         RouteConfig.RegisterRoutes();                //注册路由
         BundleConfig.RegisterBundles();              //注册css与javascript压缩
         WebIoc.Register(c => c.RegisterInstance <RouteValueDictionary>(new System.Web.Routing.RouteValueDictionary(new { controller = "adminhome", action = "login", area = "admin" })).Named <RouteValueDictionary>("admin"));
     }
 }
示例#5
0
文件: Start.cs 项目: wangzhkai/sunmvc
 public static void Init()
 {
     WebIoc.Register(b => b.RegisterType <Session.MSSession>().As <ISession>().SingleInstance());
     WebIoc.Register(b => b.RegisterGeneric(typeof(ModelCacheFac <>)).As(typeof(IModelCacheFac <>)).SingleInstance());
     WebIoc.Register(b => b.RegisterInstance(FileOperate.Instance).As <IFileOperate>().ExternallyOwned());
     WebIoc.Register(b => b.RegisterInstance(Loader.Instance).As <ILoader>().ExternallyOwned());
     WebIoc.Register(b => b.RegisterInstance(Manage.Instance).As <IManage>().ExternallyOwned());
     WebIoc.Register(b => b.RegisterInstance(ZipManage.Instance).As <IZipManage>().ExternallyOwned());
     WebIoc.Register(b => b.RegisterType <SunSMS>().As <ISMS>().SingleInstance());
     WebIoc.Register(b => b.RegisterType <SunEmail>().As <IEmail>());
     ZipManage.Instance.Initialize();
     Manage.Instance.Initialize();
 }
示例#6
0
        /// <summary>
        /// 初始化。
        /// </summary>
        public void Initialize()
        {
            //注册插件控制器工厂。
            ControllerBuilder.Current.SetControllerFactory(new PluginControllerFactory());
            //注册插件模板引擎。
            ViewEngines.Engines.Clear();
            ViewEngines.Engines.Add(new PluginRazorViewEngine());

            var         plugins         = fileParser.Load();
            List <Type> controllerTypes = new List <Type>();

            foreach (var plugin in plugins)
            {
                //初始化插件。
                if (plugin.Status == PluginStatus.Usable)
                {
                    InitPlugin(plugin);
                }
                if (plugin.Status == PluginStatus.Usable && plugin.Type == PluginType.Module)
                {
                    var baseType = typeof(AreaRegistration);
                    foreach (var t in plugin.Types)
                    {
                        if (t.BaseType.Name == baseType.Name)
                        {
                            AreaRegistration registration = (AreaRegistration)Activator.CreateInstance(t);
                            registration.CreateContextAndRegister(RouteTable.Routes, null);
                        }
                        else if (t != null &&
                                 t.IsPublic &&
                                 t.Name.EndsWith("Controller", StringComparison.OrdinalIgnoreCase) &&
                                 !t.IsAbstract &&
                                 typeof(IController).IsAssignableFrom(t))
                        {
                            controllerTypes.Add(t);
                        }
                    }
                }
            }
            RouteTable.Routes.MapMvcAttributeRoutesForTypes(controllerTypes);
            RouteManage.RegisterAllRoutes(RouteTable.Routes);
            BundleManage.RegisterAllBundles(BundleTable.Bundles);
            WebIoc.Register(b => b.RegisterTypeFromDirectory(null, AppDomain.CurrentDomain.SetupInformation.PrivateBinPath));
            WebIoc.Register(b => b.RegisterTypeFromDirectory(null, Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"App_Data\Plugins")));
            WebIoc.Register(b => b.RegisterControllersFromDirectory(null, Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"App_Data\Plugins")));
            WebIoc.Register(b => b.RegisterControllers(AppDomain.CurrentDomain.GetAssemblies()));
            WebIoc.Instance.OnBuilded += c => DependencyResolver.SetResolver(new AutofacDependencyResolver(c));
            WebIoc.Instance.Build();
        }
示例#7
0
        public void Initialize(PluginInfo info)
        {
            pluginInfo = info;
            var hostList = JsonConvert.DeserializeObject <List <ConfigInfo> >(info.Config);

            foreach (var host in hostList)
            {
                if (host.Name == "datas")
                {
                    WebIoc.Register(b => b.Register <RedisCache>(c => new RedisCache(host)).As <ICache>().SingleInstance());
                }
                WebIoc.Register(b => b.Register <RedisCache>(c => new RedisCache(host)).Named <ICache>(host.Name).SingleInstance(), guid, info.Status == PluginStatus.Usable);
            }
            WebIoc.Register(b => b.Register(c => new Session(c.ResolveNamed <ICache>("session"))).As <Sun.Core.Session.ISession>().PreserveExistingDefaults().SingleInstance(), guid, info.Status == PluginStatus.Usable);
        }