Mustang1.0.0.0的QuickStart
使用Mustang1.0.0.0只需要三步:(Mustang的介绍请见:http://www.cnblogs.com/microsheen/archive/2005/08/28/224607.html)
第一步:创建影射文件。
Mustang1.0.0.0映射文件(其Schema见mustang-mapping.xsd )的示例如下:
<?xml version="1.0" encoding="utf-8" ?>
<mustang-mapping xmlns="urn:mustang-mapping" controlgettertype="Mustang.Parse.WebControlGetter, Mustang">
<object name="LoginUser" type="Mustang.Example.Entity.SysUser, Mustang.Example">
<property controlid="txtUserID" name="UserID" />
<property controlid="txtUserName" name="UserName" />
<property controlid="ddlUserGroupID" name="UserGroupID" controlproperty="SelectedValue" allowerror="true" />
<property controlid="chkStatus" name="Status" controlproperty="Checked" convertertype="Mustang.Parse.BoolConverter, Mustang" />
</object>
</mustang-mapping>
在映射文件中,除根节点外,只有两种元素:object,property。
1.object元素:可以嵌套,即object可以包含object,这表示对象中引用另一个对象的关系,比如:每一个用户对象可以引用一个用户角色对象(见示例3)。
1)name:对象在映射文件中的名字,要求唯一
2)type:表示对象的类型。
3)proxytype:对象代理器。指把使用代理对象的内容来映射到界面控件,该属性对mustang-mapping元素下的object无效(见示例4)
4)mappingmode:界面与对象映射的方式。有三种方式:Both,ObejctToUI,UIToObject,分别代表双向转换、仅仅对象到界面、仅仅界面到对象
2.property元素:
1)controlid:控件ID
2)name:对象的属性名称
3)controlproperty:控件的属性名称,默认为Text
4)allowerror:当在转化过程中是否允许错误。如果允许,则不会抛出异常。主要用于Dropdown list等控件。默认为False。
5)convertertype:执行对象属性和控件属性转化的类,默认值是:Mustang.Parse.PropertyConverter。它和object.proxytype是系统的扩展的关键,你可以根据继承IPropertyConverter或PropertyConverter来实现更加复杂的、或个性的映射
6)mappingmode:同object。
第二步:创建Mustang.UIService,并加载映射文件。
我在页面文件中,建立了两个属性,用来创建UIService。
#region 对象界面映射
private IUIService _uiService;
/// <summary>
/// 映射控制
/// </summary>
protected virtual IUIService UIService
{
get
{
if (_uiService == null) _uiService = new UIService(this, this.UIMappingFileName);
return _uiService;
}
}
/// <summary>
/// 映射文件名称
/// </summary>
protected virtual string UIMappingFileName
{
get
{
return Server.MapPath(this.GetType().BaseType.Name+".uim.xml");
}
}
#endregion
第三步:调用UIService的BindObjectToUI和BindUIToObject,分别来绑定对象到界面,绑定界面到对象。
protected void ToUI()
{
this.UIService.BindObjectToUI(this.LoginUser, "LoginUser");
}
protected void FromUI()
{
this.UIService.BindUIToObject(this.LoginUser, "LoginUser");
}
请开始使用你的Mustang的吧!