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); }
public ActionResult Index3() { FunctionInfo info = new FunctionInfo(); WebIoc.Register(test, showstr); ViewBag.show = showstr; return(View()); }
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); }
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")); } }
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(); }
/// <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(); }
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); }