allcnewsBLOGNEWSBLOGASKBLOGBLOGZSK全部技术问答问答技术问答it问答代码软件新闻开发博客电脑/网络手机/数码笔记本电脑互联网操作系统软件硬件编程开发360产品资源分享电脑知识文档中心IT全部全部分类 全部分类技术牛文全部分类教程最新 网页制作cms教程平面设计媒体动画操作系统网站运营网络安全服务器教程数据库工具网络安全软件教学vbscript正则表达式javascript批处理更多»编程更新教程更新游戏更新allitnewsJava 新闻网络医疗信息化安全创业站长电商科技访谈域名会议专栏创业动态融资创投创业学院 / 产品经理创业公司人物访谈营销 开发数据库服务器系统虚拟化云计算 嵌入式移动开发作业作业1常见软件all电脑网络手机数码生活游戏体育运动明星影音休闲爱好文化艺术社会民生教育科学医疗健康金融管理情感社交地区其他电脑互联网软件硬件编程开发360相关产品手机平板其他电子产品摄影器材360硬件通讯智能设备购物时尚生活常识美容塑身服装服饰出行旅游交通汽车购房置业家居装修美食烹饪单机电脑游戏网页游戏电视游戏桌游棋牌游戏手机游戏小游戏掌机游戏客户端游戏集体游戏其他游戏体育赛事篮球足球其他运动球类运动赛车健身运动运动用品影视娱乐人物音乐动漫摄影摄像收藏宠物幽默搞笑起名花鸟鱼虫茶艺彩票星座占卜书画美术舞蹈小说图书器乐声乐小品相声戏剧戏曲手工艺品历史话题时事政治就业职场军事国防节日风俗法律法规宗教礼仪礼节自然灾害360维权社会人物升学入学人文社科外语资格考试公务员留学出国家庭教育学习方法语文物理生物工程学农业数学化学健康知识心理健康孕育早教内科外科妇产科儿科皮肤科五官科男科整形中医药品传染科其他疾病医院两性肿瘤科创业投资企业管理财务税务银行股票金融理财基金债券保险贸易商务文书国民经济爱情婚姻家庭烦恼北京上海重庆天津黑龙江吉林辽宁河北内蒙古山西陕西宁夏甘肃青海新疆西藏四川贵州云南河南湖北湖南山东江苏浙江安徽江西福建广东广西海南香港澳门台湾海外地区

详解ABP框架中的日志管理和设置管理的基本配置

日期:2016/6/24 15:44:00 来源:本网整理

IE11借助ABP和跟踪保护列表过滤广告总留下些空白框架,怎么...楼主试试html>body#nv_forum>div#sitefocus,body#nv_forum>div#wp>div[class="wp"],body#nv_forum>div#wp>div:nth-last-child(12)>div,body#nv...谁有这张试卷及其答案啊A.4条B.3条C.2条D.1条4.两个顶角相等的等腰三角形框架,其中一个三角形框架的腰....第13题13.如图,圆内接△ABC中,D是BC边的中点,E是AB边的中点,F是AC边的中点,连...


详解ABP框架中的日志管理和设置管理的基本配置(图1)


详解ABP框架中的日志管理和设置管理的基本配置(图2)


详解ABP框架中的日志管理和设置管理的基本配置(图3)


详解ABP框架中的日志管理和设置管理的基本配置(图4)


详解ABP框架中的日志管理和设置管理的基本配置(图5)


详解ABP框架中的日志管理和设置管理的基本配置(图6)

s">

详解ABP框架中的日志管理和设置管理的基本配置

作者:阳光铭睿 字体:[增加 减小] 类型:转载 时间:2016-06-15 我要评论 ABP是基于ASP.NET的Web开发框架,其日志和框架setting设置方面的模块功能也一应俱全,这里我们就来详解ABP框架中的日志管理和设置管理的基本配置 ">

日志管理

Server side(服务器端)

2014河北省中考数学试题出的怎么样2、核心考点平淡化。对于数与式中的解方程、解不等式,空间图形中的四边形性质、圆...7~16小题每小题3分,注重基础知识的灵活运用。选择题知识覆盖面广,多为大框架内。防恶意抓取,请查看原文,,真格学网提供内容。

ASP.NET Boilerplate使用Castle Windsor's logging facility日志记录工具,并且可以使用不同的日志类库,比如:Log4Net, NLog, Serilog... 等等。对于所有的日志类库,Castle提供了一个通用的接口来实现,我们可以很方便的处理各种特殊的日志库,而且当业务需要的时候,很容易替换日志组件。

2010江苏泰州中考数学试卷及答案∴DM=BM即AC平分BD∵c=6.∵抛物线为∴A()、B()∵M是BD的中点∴M()...连接BP、PQ,此时由"边角边"易得△AQP≌△ABP.28.解:⑴①根据题意得:B的坐标为...。防恶意抓取,请查看原文,,真格学网提供内容。

译者注释:Castle是什么:Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容器,再到WEB层的MVC框架、AOP,基本包括了整个开发过程中的所有东西。ASP.NET Boilerplate的ioc容器就是通过Castle实现的。

。防恶意抓取,请查看原文,,真格学网提供内容。

Log4Net 是asp.net下面最流行的一个日志库组件, ASP.NET Boilerplate 模板也使用了Log4Net日志库组件,但是呢,我们这里仅仅通过一行关键代码就实现Log4Net 的依赖注入(具体说明在下面的配置文件),所以,如果你想替换成自己的日志组件,也很容易。

当肝脏不好时,肝功能受损,就会出现下面这些肝脏不好的表现。表现1、粉刺增多人体内黄体荷尔蒙起着促进分泌皮脂的作用。而肝脏则能破坏黄体荷尔蒙,调整荷尔蒙平衡。因此肝脏功能降低会使皮脂分泌增多,最终导致粉刺丛生。表现2、容易喝醉有些人,平时酒量很大,然而现在变得喝一点之后就感觉“醉了”,这种征兆提醒您肝脏功能下降,肝受损了,肝脏不能完全分解酒精代谢物乙醛。表现3、伤口容易化脓感染肝脏对人体代谢起着重要。防恶意抓取,请查看原文,,真格学网提供内容。

获取日志记录器logger

上图是一个名叫“chaim”的网友5年前的回复,他评论说:“对于手掌较小的人士来说,4英寸屏幕根本没办法单手操作使用”。这是早些年很多人对于屏幕变得越来越大的担忧。实际上,对于正常人来说,4英寸屏幕手。防恶意抓取,请查看原文,,真格学网提供内容。

不管你选择哪一个日志库组件,通过代码来进行日志记录都是一样的。(这里吐槽, Castle's 通用 ILogger 接口实在太牛逼了)。

感谢头条邀我作答。我是云南的,小时候家里餐桌上经常会有一道凉拌菜,叫做折耳根。小时候不喜欢吃,甚至可以说是很讨厌。但是慢慢的喜欢上了那种味道。逛街吃个炸洋芋要放折耳根。吃火锅打蘸水要放折耳根。吃烧豆腐。防恶意抓取,请查看原文,,真格学网提供内容。

下面进入正题:(译者注:下面的代码是abp框架的Castle.Core源码分析以及实现)

谢邀!狗狗恐惧下楼梯,原因是下楼时有种往下栽的感觉,它不知道下去是否安全,这也是大多数狗狗的反映,主人不必太担心!我们要做的是,让狗狗克服对下楼梯的恐惧,那就要必须直面恐惧,首先将它带到楼梯处,人先下。防恶意抓取,请查看原文,,真格学网提供内容。

1、首先呢,我们要先处理日志记录器对象logger, ASP.NET Boilerplate框架使用了dependency injection依赖注入技术,我们可以很方便的使用依赖注入生成日志记录器对象logger。

车子在使用的情况下,正常来说是6-8万公里更换一次,一般养护手册里面都会有写到,具体车型情况不同。正时皮带属于耗损品,而且正时皮带一旦断裂,凸轮轴就不会照着正时运转,此时极有可能导致汽门与活塞撞击而造成严重毁损,所以正时皮带一定要依据原厂指定的里程或时间更换。正时皮带的作用是校正发动机完成冲程的时间的,比如发动机完成一个进气、进油、点火、排气这几个步骤需要10秒,每个2.5秒,如果产生偏差的话会导。防恶意抓取,请查看原文,,真格学网提供内容。

接下来我们看一下 ASP.NET Boilerplate是怎么实现日志记录功能的吧:

我先说一下,网络与新媒体专业在百科里面说的是“网络与新媒体专业是基于互联网等新兴媒介形态对新闻传播行业及整个社会的的巨大推动,顺应数字信息时代发展所需,顺应移动互联媒介融合的趋势要求而产生的新闻传播类。防恶意抓取,请查看原文,,真格学网提供内容。

using Castle.Core.Logging; //1: 导入日志的命名空间,Castle.Core.Logging public class TaskAppService : ITaskAppService { //2:通过依赖注入获取日志记录器对象。 这里先定义了一个ILogger类型的public属性Logger,这个对象就是我们用来记录日志的对象。在创建了TaskAppService对象(就是我们应用中定义的任务)以后,通过属性注入的方式来实现。 public ILogger Logger { get; set; } public TaskAppService() { //3: 如果没有日志记录器,将日志记录器返回一个空的实例,不写日志。这是依赖注入的最佳实现方式, // 如果你不定义这个空的日志记录器,当我们获取对象引用并且实例化的时候,就会产生异常。 // 这么做,保证了对象不为空。所以,换句话说,不设置日志记录器,就不记录日志,返回一个null的对象。 // NullLogger对象实际上什么都木有,空的。这么做,才能保证我们定义的类在实例化时正常运作。 Logger = NullLogger.Instance; } public void CreateTask(CreateTaskInput input) { //4: 写入日志 Logger.Info("Creating a new task with description: " + input.Description); //TODO: save task to database... } }

双满贯意味着什么?意味着在长达8年的两个奥运周期,一直处于世界领先的地位。难度之大,可见一斑。在技术发展迅速的乒乓球男线中,还没有人能完成这一壮举。张继科喜欢挑战,但是他也坦言,“我自己嘴上总说要拿第二轮,真正行动起来,打起比赛的时候,总会自我原谅”。  双满贯的难度有多大?难度在于竞技水平的保持,更在于心理上的自我突破。当第二次去冲击已经加冕在身的冠军时,不会再像之前没有拿过的时候那么奋不顾身、勇往直前地拼命争取。而是要在所有都经历过了以后,要放下以前的荣誉,从头开始和自己较劲。张继科经常跟自己较劲,也擅长和自己较劲,但这不代表他喜欢这种状态。没有人喜欢让自己难受,你我如此,张继科亦然,当然。防恶意抓取,请查看原文,,真格学网提供内容。

复制代码 代码如下:

今天我微博里有一个女生咨询我在国内找到男朋友。这个女生拿到美国绿卡,在美国觉得没意思,回国,没房没车,在一个汽车品牌公司做工程师。属性学霸类型,理工科的。其实她这种学历高的,在我眼里,也不能算赚大钱的。防恶意抓取,请查看原文,,真格学网提供内容。

INFO 2014-07-13 13:40:23,360 [8 ] SimpleTaskSystem.Tasks.TaskAppService - Creating a new task with description:Remember to drink milk before sleeping!

新闻经常这样无非是自吹自擂,看到类似新闻应该从两个角度来考虑,不要人云亦云。首先是否属实?类似这样的新闻都看过很多了,很多都是经过媒体的夸大炒作,其次究竟价值几何?动不动就冠以优质玉矿的说法。其实是差十万八千里里。图中展示出的效果,就是玛瑙类的玉石,我们大多数有价值的宝石都是经过了时间的考验和历史的不断验证,所以才认定它有价值的。思考一个问题就可以了,为什么黄金具有货币属性?而不是其他宝石类,钻石。防恶意抓取,请查看原文,,真格学网提供内容。

写入日志以后,我们可以查看日志文件,就像下面的格式: 通过基类使用Logger

一、品牌价值有什么用,数字游戏,一年一个样,虚拟价值,比比真金白银吧,2015年大众研发投入100多亿美金,全球第一,是丰田2倍多,2016年大众研发投入依然全球第一,比丰田多56亿欧元,比实的是一个。防恶意抓取,请查看原文,,真格学网提供内容。

ASP.NET Boilerplate框架提供了MVC Controllers、Web API Controllers和Application service classes的基类(自己定义的控制器和应用服务,都必须要继承ASP.NET Boilerplate的基类,换句话说,当你自定义的Web API controllers、mvc controllers,Application service classes都继承了ASP.NET Boilerplate框架对应的基类,你就可以直接使用日志记录器)。

这些显瘦发型小心机,化妆师都不一定会告诉你~~~结婚怎么做发型显瘦,你还是听听小犀老师的!━━━━━━━━━━━━━━━━━━━━首当其冲|圆脸━━━━━━━━━━━━━━━━━━━━症状脸颊圆,下巴线条不明显,颧骨区宽,下巴短明星代表陈妍希、林心如、林依晨处方▼①发顶蓬松拉长脸型圆脸因为脸颊的肉肉本身横向面积就有丢丢大,而且下巴也有点短,如果不从拉长脸型这个点下手,那真的显瘦也显不到位。最干脆利落的就是花苞头,那效果杠杠的。如果是盘发造型,发顶千万要蓬松!平时扎马尾你就应该能感觉到,如果扎太紧不仅头皮不舒服,像在拉扯头皮,而且拉长脸型的效果也大打折扣。发顶蓬松点,整个人都甜美了好多。如果担心。防恶意抓取,请查看原文,,真格学网提供内容。

public class HomeController : SimpleTaskSystemControllerBase { public ActionResult Index() { Logger.Debug("A sample log message..."); return View(); } }

人对一个食物的味道好坏评级实际来自于这些KPI:1)舌头味蕾的味觉感受,味蕾现在被确定是能感知四种味觉,不是“酸甜苦辣”,而是“酸甜苦鲜”,其中“鲜”是人类舌头对蛋白质中的“氨基”的感知能力,”鲜“的感知分支(不同的鲜味)远超我们的想象,是另外山中”酸甜苦“种类之和加起来的数十倍之多,而且感知的范围也远超过另外三种味觉,具体参数有兴趣的可以去查一下医学文献。其中人类可以感知脂肪带来的鲜味,比如台湾。防恶意抓取,请查看原文,,真格学网提供内容。

说明:SimpleTaskSystemControllerBase这个基类控制器是我们自己定义的基类控制器,他必须继承自 AbpController。

这都哪跟哪啊。支付宝=一家支付公司。在中国,支付公司是需要持有央行颁发的支付牌照才可以上岗运作的。支付宝是央行发的第一家支付牌照。这只意味着支付宝是合法运营,不涉及其他。如果是你最近听说的传言,可能说。防恶意抓取,请查看原文,,真格学网提供内容。

这样实现,日志记录器才能正常工作。当然了,你也可以实现自己的基类,这样的话你也可以不使用依赖注入了。

这个是由相扑运动性质决定的,相扑没有重量级别限制,在规则上,相扑不允许用踢、拳头击打等手段将对手致伤而获胜,也没有绳网可以依靠。两名相扑手就是面对面蹲在一起,然后以双拳触地互相发起冲撞,如果没有点体重。防恶意抓取,请查看原文,,真格学网提供内容。

 配置

你是想问红米note能不能升级到MIUI9吧!MIUI9从7月26号发布至今,已经有几十万用户用上了MIUI9。8月25日也就是今天MIUI9开始第二批开发版推送。MIUI9支持机型MIUI9第二批开。防恶意抓取,请查看原文,,真格学网提供内容。

如果你在官网上通过ASP.NET Boilerplate templates 来生成了你的工程,Log4Net的所有配置都自动生成了。

看到楼主的描述,小编大概可以认为,楼主要的是拍照好,游戏好的手机。魅蓝note2确实落后了。还有,既然是重度农药玩家,那农药高帧率模式的手机才是最适合的。一加5这个不用说太多,高通835调校最鸡血的,。防恶意抓取,请查看原文,,真格学网提供内容。

默认的配置格式如下:

《我脑海中的橡皮擦》记得我是在初中的时候看的,记得看的时候是晚上,一个人躲在被子里哭的真的是稀里哗啦的。我回忆一下故事的情节吧。故事好像是这样的:秀真是一个富家女,跟男友出走却被抛弃,在便利店内与在建。防恶意抓取,请查看原文,,真格学网提供内容。

•Log level: 日志记录等级,有DEBUG, INFO, WARN, ERROR or FATAL5个。

合成机油分全合成和半合成的。一般全合成的机油都会叫全合成机油,而通常的合成机油一般都是半合成机油。如果不考虑价格,当然用全合成机油对发动机更好。而且全合成机油可以9到10个月换一次,而半合成一半至少半。防恶意抓取,请查看原文,,真格学网提供内容。

•Date and time: 日志记录时间。

很明确回答!是!在现在这个社会,甲醛可以说是无处不在。不止房子装修会有甲醛,连购买的新家具也都带来了不少的甲醛。甚至衣服裤子,食品等等,你能想到的能接触到的几乎无一例外,只是或多或少的问题。总结一下:。防恶意抓取,请查看原文,,真格学网提供内容。

•Thread number: 每行日志写时候的线程号。

一句话:轮胎的寿命在4年以内极限以磨损到安全线为准,4年以后,无论里程多少,是否到达安全线,都应该立即更换!轮胎橡胶硬化老化的时间一般为4年,经常在阳光下暴晒、高温这环境个时限还会缩短,特别说明的是:。防恶意抓取,请查看原文,,真格学网提供内容。

•Logger name: 日志记录器的名字,通常情况就是类名称。

你好,痛风患者每天都“只吃”素并不是很好的选择。这是因为肉类食物是人体蛋白质最好的来源之一,缺乏蛋白质可能会引起其他疾病的发生。痛风患者虽说要限制蛋白质的量,但也要保证每天每公斤体重1克蛋白质的摄入量。防恶意抓取,请查看原文,,真格学网提供内容。

•Log text: 你写入的日志内容。

常用的wifi,比如自家的wifi,相信大家都是设为记住密码状态的,每次回到家,只要打开WLAN,就会自动连接。且家里的wifi,为了避免被蹭网,不少人的密码都会设置得十分复杂。因此久而久之,就忘了密。防恶意抓取,请查看原文,,真格学网提供内容。

配置文件:log4net.config 一般都在项目的web目录下面。

肯定是要适合。适合宝宝的才是最好的。我的宝宝用纸尿裤,总爱勒得大腿出现一条一条的勒痕,所以我总是给她用大一码的纸尿裤。纸尿裤最好选择防侧漏带材质柔软的。我也最怕宝宝红屁屁了。有次疼得她一直哭一直闹,就。防恶意抓取,请查看原文,,真格学网提供内容。

<?xml version="1.0" encoding="utf-8" ?> <log4net> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender" > <file value="Logs/Logs.txt" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="10000KB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%-5level %date [%-5.5thread] %-40.40logger - %message%newline" /> </layout> </appender> <root> <appender-ref ref="RollingFileAppender" /> <level value="DEBUG" /> </root> <logger name="NHibernate"> <level value="WARN" /> </logger> </log4net>

此石叫硫铁矿,化学名称为硫化亚铁。亦称愚人金,比重约为5,硬度在6~6.5.是半导体矿物,在热作用下,其捕获的电子易于流动,且具方向性,形成电子流,因产生的热电动势而具热电性。矿石也可作为摆件赏石。最后一块与你的相仿。。防恶意抓取,请查看原文,,真格学网提供内容。

Log4Net是一个非常强大和易用的日志库组件,你可以写各种日志,比如写到txt文件,写入到数据库等等。你能设置最小的日志等级,就像上面这个针对NHibernate的配置。不同的记录器写不同的日志,等等。

姑且不论“反转”正确,还是“挺转”在理,就事论事,我认为这个设问就是在罔顾事实、混淆视听。事实胜于雄辩。在各大媒体关于转基因的报道之后、在各知名媒体人的意见之下,反转人士口诛笔伐、群起而攻之,其声音远远盖过挺转。而在此问题中竟然被倒打一耙,这既缺乏理性,也不厚道。留意观察一些挺转、反转人士的立场、态度和观点,特别是观察一些粉丝众多的大V的观点,觉得挺有意思。有些大V,思路清晰、语言精练,具有较高的。防恶意抓取,请查看原文,,真格学网提供内容。

具体的用法大家可以参照:http://logging.apache.org/log4net/release/config-examples.html

您好,每天锻炼身体很好的,当然需要速度训练,这样可使我们在跑步过程提高心肺功能,天天练习跑步,当然是无可后非的,但是也要有些章法,不能不科学的锻练。首先细分跑步速度是怎样才算是快:一、腿部力量大,暴发。防恶意抓取,请查看原文,,真格学网提供内容。

最后,在工程的Global.asax 文件中,来定义Log4Net的配置文件:

自从有了互联网之后,一切东西,只要是智能的,即它含有CPU及能联网的器件,就都能联网了。人与人可以通过微信联网聊天。物品如果能联网的话,当然也就可以彼此交换信息。举例来说,你家的冰箱、空调、PM2.5。防恶意抓取,请查看原文,,真格学网提供内容。

public class MvcApplication : AbpWebApplication { protected override void Application_Start(object sender, EventArgs e) { IocManager.Instance.IocContainer.AddFacility<LoggingFacility>(f => f.UseLog4Net().WithConfig("log4net.config")); base.Application_Start(sender, e); } }

肯定有用啊,先说我自己吧,我是每天早晚空腹喝一小碗燕窝,记得第一次吃燕窝,那真是难以下咽,蛋腥味儿很浓,像煮熟的鸡蛋味,越凉这股味道就越淡了,虽然很嫌弃这股味道,但这也是检验真假燕窝的标准之一。加了蜂蜜和水果,才一口气给干了。后面慢慢研究做法,加了各种辅料,椰奶,酸奶,水果,自己煮的红枣枸杞汤,往里面加,还挺好吃的。我自身的改变就是两点,第1点肠胃变好了,以前肚子总胀气,偶尔胃痛什么的,各种不舒服,现在真的是很久没有这种胃不舒服的感觉了,感觉特清爽。第2点就是皮肤变好了点,燕窝确实有美容养颜的功效,在我自个儿用相同护肤品的情况下,我的脸竟然没起皮,还是持续长时间未起皮,以前画个妆一点都不服帖,。防恶意抓取,请查看原文,,真格学网提供内容。

几行代码就调用了Log4Net这个日志记录组件,工程中的Log4Net库是在 nuget package包中的,你也可以换成其他日志组件库,但是代码不用做任何改变。因为,我们的框架是通过依赖注入实现日志记录器的!

感谢头条的邀请当我们看到一个人在非常认真地洗手,心里会赞叹,这个人真讲卫生;若我们总是看到他在洗手,心里会本能地有狐疑:这人有洁癖吧?  通俗地说,洁癖就是太爱干净。本来,这只是个人卫生习惯,旁人无须多议,但对于一部分当事人,这种习惯不仅影响了人际关系,也给自己带来了痛苦的体验。一、洁癖与个人卫生习惯  一个人适当地爱干净是好事,但过于注重清洁的行为有别于大多数人那就属于洁癖的范畴了  每次出差,。防恶意抓取,请查看原文,,真格学网提供内容。

 Client side(客户端)

最后,更厉害的是,你还可以在客户端调用日志记录器。在客户端,ASP.NET Boilerplate框架有对应的 javascript 日志API,这意味着你可以记录下来浏览器的日志,实现代码如下:

abp.log.warn('a sample log message...');

附上:客户端javascript的api,这里要说明的是,你可以使用console.log在客户端输出日志,但是这个API 不一定支持所有的浏览器,还有可能导致你的脚本出现异常,你可以使用我们的api,我们的是安全的,你甚至可以重载或者扩展这些api。

abp.log.debug('...'); abp.log.info('...'); abp.log.warn('...'); abp.log.error('...'); abp.log.fatal('...');

设置管理

介绍

每个应用程序需要存储一些设置并在应用程序的某个地方使用这些设置。ABP框架提供强大的基础架构,我们可以在服务端或者客户端设置,来存储/获取应用程序、 租户和用户级别的配置。

设置通常是存储在数据库(或另一个来源)中,用名称-值(name-value)字符串对应的结构来表示。我们可以把非字符串值转换成字符串值来存储。

注意:关于ISettingStore接口

为了使用设置管理必须实现 ISettingStore 接口。你可以用自己的方式实现它,在module-zero项目中有完整的实现可以参考。

定义设置

使用设置之前必须要先定义。ABP框架是模块化设计,所以不同的模块可以有不同的设置。为了定义模块自己的设置,每个模块都应该创建继承自SettingProvider 的派生类。设置提供程序示例如下所示:

public class MySettingProvider : SettingProvider { public override IEnumerable<SettingDefinition> GetSettingDefinitions(SettingDefinitionProviderContext context) { return new[] { new SettingDefinition( "SmtpServerAddress", "127.0.0.1" ), new SettingDefinition( "PassiveUsersCanNotLogin", "true", scopes: SettingScopes.Application | SettingScopes.Tenant ), new SettingDefinition( "SiteColorPreference", "red", scopes: SettingScopes.User, isVisibleToClients: true ) }; } }

GetSettingDefinitions 方法返回 SettingDefinition 对象。SettingDefinition 类的构造函数中有如下参数:

•Name (必填):必须具有全系统唯一的名称。比较好的办法是定义字符串常量来设置Name。

•Default value: 设置一个默认值。此值可以是null 或空字符串。

•Scopes: 定义设置的范围 (见下文)。

•Display name: 一个可本地化的字符串,用于以后在UI中显示设置的名称。

•Description: 一个可本地化的字符串,用于以后在UI中显示设置的描述。

•Group: 可用于设置组。这仅仅是UI使用,不用于设置管理。

•IsVisibleToClients: 设置为 true 将使设置在客户端可用。

在创建设置提供程序(SettingProvider)之后,我们应该在预初始化(PreIntialize)方法中注册我们的模块:

Configuration.Settings.Providers.Add<MySettingProvider>();设置提供程序会自动注册依赖注入。所以,设置提供程序可以注入任何依赖项 (如存储库) 来生成设置定义的一些其它来源。

 设置范围

有三个设置范围 (或级别) 在 SettingScopes 枚举中定义:

•Application:应用程序范围设置用于用户/租户独立的设置。例如,我们可以定义一个名为"SmtpServerAddress"的设置,当发送电子邮件时,获取服务器的 IP 地址。如果此设置有一个单一的值 (不基于用户改变),那么我们可以定义它为应用程序范围。

•Tenant:如果应用程序是多租户的,我们可以定义特定于租户的设置。

•User:我们可以使用的用户范围的设置来为每个用户存储/获取设置的值。

SettingScopes 枚举具有Flags属性,所以我们可以定义一个具有多个作用域的设置。

设置范围是分层的。例如,如果我们定义设置范围为"Application | Tenant | User"并尝试获取当前设置的值;

•我们获取特定用户的值,如果它定义 (重写) User。

•如果没有,我们获取特定的租户值,如果它定义 (重写) Tenant。

•如果没有,我们获取应用的值,如果它定义Application。

•如果没有,我们得到的默认值。

默认值可以是 null 或空字符串。如果可以,建议为设置提供一个默认值。

获取设置值

定义设置后,我们可以在服务器和客户端获取到它的当前值。

(1)服务器端(Server side)

ISettingManager 用于执行设置操作。我们可以在应用程序中任何地方注入和使用它。ISettingManager 定义了很多获取设置值方法。

最常用的方法是 GetSettingValue (或GetSettingValueAsync 为异步调用)。它将返回当前设置的基于默认值、 应用程序、 租户和用户设置范围的值(如设置范围之前的一段中所述)。例子:

//Getting a boolean value (async call) var value1 = await SettingManager.GetSettingValueAsync<bool>("PassiveUsersCanNotLogin"); //Getting a string value (sync call) var value2 = SettingManager.GetSettingValue("SmtpServerAddress");

GetSettingValue 有泛型和异步版本,如上所示。也有方法来获取特定的租户或用户的设置值或所有设置值的列表。

由于ISettingManager使用广泛,一些特定的基类 (如 ApplicationService、 DomainService 和 AbpController) 有一个名为 SettingManager的属性。如果我们从这些类继承,就无需显式地注入它。

(2)客户端

如果定义设置时将 IsVisibleToClients 设置为 true,就可以在客户端使用 javascript得到它的当前值。abp.setting 命名空间定义所需的函数和对象。示例:

var currentColor = abp.setting.get("SiteColorPreference");也有 getInt 和 getBoolean 这样的方法。你可以使用 abp.setting.values 对象获取所有值。请注意,如果你在服务器端更改设置,客户端不会知道这种变化,除非刷新页面或者以某种方式重新加载页面或者通过代码手动更新。

更改设置

ISettingManager 定义了 ChangeSettingForApplicationAsync,ChangeSettingForTenantAsync 和 ChangeSettingForUserAsync 方法(以及同步版本)来更改应用程序,租户和用户分别的设置。

关于缓存

缓存在服务器端设置管理,所以,我们不应直接使用存储库或数据库更新语句改变设置的值。

有哪些好的.net的开源项目?.net的开源项目还是有比较多的:ABP:一个国外的基于MVC的开源框架。Osharp:国人设计的基于MVC的开源框架。Nopcommerce:国外的基于MVC的电子商务平台。Orchard...谁有初三数学期末考试试卷A.4条B.3条C.2条D.1条4.两个顶角相等的等腰三角形框架,其中一个三角形框架的...第13题13.如图,圆内接△ABC中,D是BC边的中点,E是AB边的中点,F是AC边的中点,连...2014河北省中考数学试题出的怎么样2、核心考点平淡化。对于数与式中的解方程、解不等式,空间图形中的四边形性质、圆...7~16小题每小题3分,注重基础知识的灵活运用。选择题知识覆盖面广,多为大框架内的小...

  • 本文相关:
  • asp控制xml数据库的经典代码
  • ASP网站中数据库被挂木马的解决方案
  • asp实现excel中的数据导入数据库
  • ASP的Error对象知识简析
  • ASP建立一个简单的聊天室
  • ASP开发基于XML的留言板
  • 利用ASP输出excel文件实例讲解
  • ASP提速五大技巧
  • Asp编码优化技巧
  • ASP定义数组方法的技巧
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved