Castle相关收集的知识点

facilities.config:配置数据库用的参数。
properties.config:是配置连接数据库的字符串用的。
web.config:中的配置参数
<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>:
是请求和响应时的字符编码。
<castle>
<include uri="file://properties.config"/>
<include uri="file://facilities.config"/>
<include uri="file://controllers.config"/>
<include uri="file://components.config"/>
</castle>用来连接其它的配置文件。(实际上用一个web.config就可以配置全部的参数,分开写为了方便使用)

<httpHandlers>
 <add verb="*" path="*.page" type="Castle.MonoRail.Framework.MonoRailHttpHandlerFactory, Castle.MonoRail.Framework" />
 <!-- block direct user access to template files -->
 <add verb="*" path="*.vm" type="System.Web.HttpForbiddenHandler" />
 <add verb="*" path="*.boo" type="System.Web.HttpForbiddenHandler" />
 <add verb="*" path="*.st" type="System.Web.HttpForbiddenHandler" />
</httpHandlers>
用来设置页面的后缀名。如path="*.page";是现在用的后缀名。
--------------------------------------------------------------------------------------------
View/nvelocity.properties:用来设置文件的编码
input.encoding=gb2312
output.encoding=gb2312
要与web.config里面的编码要一致,已免出现乱码。
--------------------------------------------------------------------------------------------
layouts文件夹用来嵌套页面用的,当有一些相同风格类型的页面时用
[layout]
$childContent
--------------------------------------------------------------------------------------------
rescues文件夹用来出错时的错误页面

--------------------------------------------------------------------------------------------
Filters文件夹用来存放过滤类的,
[Filter(ExecuteEnum.BeforeAction,typeof(LoginFilter))]用法
实现的类要继承Castle.MonoRail.Framework.IFilter接口。
用来防止非注册用户访问页面。
[skipFilter(typeof(ClassName))]用来跳过滤的类型。

--------------------------------------------------------------------------------------------
Helpers文件夹用来写一些用在页面的实现方法。
要继承:Castle.MonoRail.Framework.Helpers.AbstractHelper类
=------------------------------------------------------------------------------------------
GlobalApplication.cs全局程序加载时执行
public void Application_OnStart(){}:在工程程序加载时执行。
public void Application_OnEnd(){}:在工程程序结束时执行。
---------------------------------------------------------------------
//Using Castle.MonoRail.Framework
调用了HelperAttribute类:是一种页面上调用后台类的方式。
[Helper(typeof(KingCard.Helpers.DataHelper),"DataHelper")]
页面上$DataHelper.GetDate()这样调用类型中方法。
//Using Castle.MonoRail.Framework
调用FilterAttribute类:是一种过滤方法,用来进行用户的判断这类用的。
[Filter(ExecuteEnum.BeforeAction,typeof(KingCard.Filters.LoginFilter))]
要实现IFilter的接口,public bool Perform(Castle.MonoRail.Framework.ExecuteEnum exec, IRailsEngineContext context, Controller controller)方法。
//Using Castle.MonoRail.Framework
调用了LayoutAttribute类,是用来在加载公共的页面。
[Layout("DataDig"),Rescue("generalerror")]
是加载layout文件下的DataDig.vm页面,到所在的类下的页面中。
//共公的页面写法。
<h1>DataDig页面</h1>
<div>
 $childContent 要加上这个会把要加载的代码加在这里面。
</div>
当有多个要过滤时用这个属性,可以执行多各过滤。
Using Castle.MonoRail.Framework.SkipFilterAttribute
//[SkipFilterAttribute(typeof(Filters.LoginFilter))]
//[SkipFilterAttribute(typeof(Filters.RankFilter))]
//[SkipFilterAttribute(typeof(Filters.LogFilter))]

原文地址:https://www.cnblogs.com/zengxlf/p/1450993.html