/// <summary> /// 使用Ninject用于本系统的自定义接口注入 /// </summary> /// <param name="ninjectKernel"></param> protected virtual void AddBindings(IKernel ninjectKernel) { ninjectKernel.Bind <IDataProvider <AppUser> >().To( RefHelper.LoadType("Jurassic.CommonModels.EFProvider.MyUserProvider")); ninjectKernel.Bind <IDataProvider <AppRole> >().To( RefHelper.LoadType("Jurassic.CommonModels.EFProvider.MyRoleProvider")); ninjectKernel.Bind <IStateProvider>().To( RefHelper.LoadType("Jurassic.CommonModels.EFProvider.MyStateProvider")); ninjectKernel.Bind <IDataProvider <Base_Catalog> >().To( RefHelper.LoadType("Jurassic.CommonModels.EFProvider.CatalogProvider")); ninjectKernel.Bind <CatalogManager>().ToSelf().InSingletonScope(); ninjectKernel.Bind <IAuditDataService <Base_CatalogArticle> >().To( RefHelper.LoadType("Jurassic.CommonModels.EFProvider.ArticleProvider")); ninjectKernel.Bind <LogManager>().ToSelf().InSingletonScope(); ninjectKernel.Bind <ICacheProvider <Stream> >().To( RefHelper.LoadType("Jurassic.AppCenter.Caches.StreamCacheProvider,Jurassic.AppCenter.Core")); ninjectKernel.Bind <IJLogManager>().To( RefHelper.LoadType("Jurassic.Log4.JLogManager")).WithConstructorArgument("logName", "MyLog"); ninjectKernel.Bind(typeof(IAuditDataService <>)).To(typeof(EFAuditDataService <>)); //组织结构管理注入配置 ninjectKernel.Bind <IOrganizationProvider>().To <OrganizationProvider>(); //服务授权管理注入配置 ninjectKernel.Bind <IServerAuthProvider>().To <ServerAuthProvider>(); ninjectKernel.Bind <IDataAuthorizeProvider>().To <DataAuthorizeProvider>(); ninjectKernel.Bind <IServiceInfoProvider>().To <ServiceInfoProvider>(); ninjectKernel.Bind <IOAuthDataProvider>().To <OAuthDataProvider>(); SiteManager.Kernel.Bind <IFileLocator>().To(typeof(FileLocator)) .WithConstructorArgument("rootPath", _fileRootPath); SiteManager.Kernel.Bind <IFileRepository>().To(typeof(WindowsFileRepository)); ninjectKernel.Bind <DBHelper>().ToSelf() .WithConstructorArgument("connStrOrName", "DefaultConnection"); ninjectKernel.Bind <DbContext, ModelContext>().To <ModelContext>() // .InRequestScope() //在一个请求中只生成一个Context, 实际使用中出现了DbContext已释放异常,暂时想不到解决办法,先注释 //.InThreadScope() // 以下的一句代码是连接数据库时声明数据库的Schema. // 其中"WEBFRAME"是Oracle库的Schema名称,如果直接运行WebFrame,它默认是连接oracle库,如果运行WebTemplate,它是连sqlserver //.WithPropertyValue("Schema", "PMDB"); .WithPropertyValue("Schema", "dbo"); ninjectKernel.Bind <UserConfig>().ToSelf() .WithPropertyValue("ShowTab", false) //如果需要系统默认以多标签形式显示页,请设置为true .WithPropertyValue("Theme", "blue") //系统默认皮肤 .WithPropertyValue("GridLineStyle", GridLineStyle.Horizental); //默认表格线样式 ninjectKernel.Bind <UserConfigStorage <UserConfig> >().ToSelf().InSingletonScope(); }
/// <summary> /// 使用Ninject用于本系统的自定义接口注入 /// </summary> /// <param name="ninjectKernel"></param> protected virtual void AddBindings(IKernel ninjectKernel) { ninjectKernel.Bind <IAuditDataService <JLogInfo> >().To( RefHelper.LoadType("Jurassic.CommonModels.EFProvider.LogProvider")); ninjectKernel.Bind <IDataProvider <AppUser> >().To( RefHelper.LoadType("Jurassic.CommonModels.EFProvider.MyUserProvider")); ninjectKernel.Bind <IDataProvider <AppRole> >().To( RefHelper.LoadType("Jurassic.CommonModels.EFProvider.MyRoleProvider")); ninjectKernel.Bind <IStateProvider>().To( RefHelper.LoadType("Jurassic.CommonModels.EFProvider.MyStateProvider")); ninjectKernel.Bind <IDataProvider <Base_Catalog> >().To( RefHelper.LoadType("Jurassic.CommonModels.EFProvider.CatalogProvider")); ninjectKernel.Bind <CatalogManager>().ToSelf().InSingletonScope(); ninjectKernel.Bind <IAuditDataService <Base_CatalogArticle> >().To( RefHelper.LoadType("Jurassic.CommonModels.EFProvider.ArticleProvider")); ninjectKernel.Bind <LogManager>().ToSelf().InSingletonScope(); ninjectKernel.Bind <ICacheProvider <Stream> >().To( RefHelper.LoadType("Jurassic.AppCenter.Caches.StreamCacheProvider,Jurassic.AppCenter.Core")); //string connstrOrKey, string collectionName //_ninjectKernel.Bind<ICacheProvider<Stream>>().To( // RefHelper.LoadType("Jurassic.MongoDb.StreamCacheProvider")) // .InSingletonScope() // .WithConstructorArgument("connstrOrKey", "mongoDb") // .WithConstructorArgument("collectionName", "WebTemplateDB"); ninjectKernel.Bind <IJLogManager>().To( RefHelper.LoadType("Jurassic.Log4.JLogManager")).WithConstructorArgument("logName", "MyLog"); //ninjectKernel.Bind<ArticleManager>().ToSelf().InThreadScope(); //ninjectKernel.Bind<LogHelper>().ToSelf().WithConstructorArgument("logName", "MyLog"); //组织管理注入配置-------------------------------------------------------------- //统一了ModelContext以后,以下写法已没有必要 //ninjectKernel.Bind<IAuditDataService<Dep_Department>>().To( //RefHelper.LoadType( // "Jurassic.CommonModels.EFProvider.OrgEFAuditDataService`1[[Jurassic.CommonModels.Organization.Dep_Department, Jurassic.CommonModels]],Jurassic.CommonModels.EFProvider")); //ninjectKernel.Bind<IAuditDataService<UserProfile>>().To<EFAuditDataService<UserProfile>>(); //ninjectKernel.Bind<IAuditDataService<Base_ArticleText>>().To<EFAuditDataService<Base_ArticleText>>(); ninjectKernel.Bind(typeof(IAuditDataService <>)).To(typeof(EFAuditDataService <>)); //组织结构管理注入配置 ninjectKernel.Bind <IOrganizationProvider>().To <OrganizationProvider>(); //服务授权管理注入配置 ninjectKernel.Bind <IServerAuthProvider>().To <ServerAuthProvider>(); ninjectKernel.Bind <IDataAuthorizeProvider>().To <DataAuthorizeProvider>(); ninjectKernel.Bind <IServiceInfoProvider>().To <ServiceInfoProvider>(); SiteManager.Kernel.Bind <IFileLocator>().To(typeof(FileLocator)) .WithConstructorArgument("rootPath", _fileRootPath); SiteManager.Kernel.Bind <IFileRepository>().To(typeof(WindowsFileRepository)); ninjectKernel.Bind <DBHelper>().ToSelf() .WithConstructorArgument("connStrOrName", "DefaultConnection"); ninjectKernel.Bind <DbContext, ModelContext>().To <ModelContext>() .InRequestScope() //在一个请求中只生成一个Context, webframe 3.0新增 //.InThreadScope() // 以下的一句代码是连接数据库时声明数据库的Schema. // 其中"WEBFRAME"是Oracle库的Schema名称,如果直接运行WebFrame,它默认是连接oracle库,如果运行WebTemplate,它是连sqlserver //.WithPropertyValue("Schema", "PMDB"); .WithPropertyValue("Schema", "dbo"); //注册本框架特有的基于内嵌资源的视图引擎 //ninjectKernel.Bind<ResViewEngine>().ToSelf() // .WithPropertyValue("ResNamespaces", innerControllerSpaces); ninjectKernel.Bind <UserConfig>().ToSelf() .WithPropertyValue("ShowTab", false) //如果需要系统默认以多标签形式显示页,请设置为true .WithPropertyValue("Theme", "blue") //系统默认皮肤 .WithPropertyValue("GridLineStyle", GridLineStyle.Horizental); //默认表格线样式 ninjectKernel.Bind <UserConfigStorage <UserConfig> >().ToSelf().InSingletonScope(); }
/// <summary> /// 从Profile中获取并设置本窗体的指定控件的属性值,如果为空则设置默认值 /// </summary> /// <param name="propertyName">用'.'号分隔的控件及属性名称 </param> /// <param name="defaultValue">默认值</param> public void Load(string propertyName, string defaultValue) { TypeAndValue value = GetContextValue(propertyName); if (String.IsNullOrEmpty(value.Value)) { value.Value = defaultValue; } // if (String.IsNullOrEmpty(value.Value)) return; string[] propertyNames = propertyName.Split('.'); object obj = FindObject(propertyNames); if (obj == null) { return; } RefHelper.SetValue(obj, propertyNames[propertyNames.Length - 1], value.Value, RefHelper.LoadType(value.TypeName)); }