示例#1
0
        /// <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();
        }
示例#2
0
        /// <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();
        }
示例#3
0
        /// <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));
        }