public object Create(object parent, object configContext, XmlNode section) { return(ShellSettings.Load(section)); }
/* * public static SessionStore SessionStore * { * get * { * return Instance.sessionStore; * } * } */ private static void ConfigurateLogger(ShellSettings cfg) { LoggerProvider.Configurate(cfg); }
private static void RegisterInsideComponents(ContainerBuilder containerBuilder, ShellSettings cfg) { containerBuilder.RegisterInstance(cfg).SingleInstance(); containerBuilder.RegisterType <DbDomainManager>() .As <IDbDomainManager>().SingleInstance(); containerBuilder.RegisterType <ModuleManager>() .As <IModuleManager>().SingleInstance(); containerBuilder.RegisterType <SlipstreamService>() .As <ISlipstreamService>().SingleInstance(); Data.IDataProvider dataProvider = null; switch (cfg.DbType) { case "mssql": dataProvider = new Data.Mssql.MssqlDataProvider(); break; case "postgres": dataProvider = new Data.Postgresql.PgDataProvider(); break; default: throw new NotSupportedException("Not supported database: " + cfg.DbType); } containerBuilder.RegisterInstance <Data.IDataProvider>(dataProvider) .SingleInstance(); //加注册 MEF 管理的插件 //TODO 目前都是放在一个 dll 里,以后要分开 //var selfCatalog = new AssemblyCatalog(System.Reflection.Assembly.GetExecutingAssembly()); //containerBuilder.RegisterComposablePartCatalog(selfCatalog); //加载内置的 DataProviders /* * var assemblies = new Assembly[] { * Assembly.GetExecutingAssembly() * }; * containerBuilder.RegisterAssemblyTypes(assemblies) * .Where(t => t.Name.EndsWith("DataProvider")) * .AsImplementedInterfaces(); */ }
public static void Initialize(ShellSettings config) { TryInitialize(config); }