爱易网
IT新闻
IT新闻
爱易资讯
网站搭建
云虚拟主机教程
云服务器教程
Apache教程
IIS教程
Nginx教程
网站策划
站长文章
推广教程
淘宝客教程
网页设计
HTML教程
XHTML教程
CSS教程
HTML5教程
CSS3教程
JavaSript基础
JQuery教程
Node.js教程
前端技术
Ajax教程
Js特效
Xml教程
平面设计
页面UI设计
photoshop教程
程序开发
AI人工智能
Asp教程
Php教程
Asp.Net教程
Net Core教程
C#教程
Java教程
Jsp教程
开发技术
微信小程序教程
Uniapp开发教程
微信公众号开发
Andriod教程
IOS教程
DOS教程
Python教程
Docker教程
Windows Container教程
数据库
MSSQL教程
MySQL教程
Redis教程
Access教程
Oracle教程
数据库教程
操作系统
Linux教程
Windows教程
MAC教程
Cisco教程
交换机教程
防火墙教程
搜索
爱易网页
ASP.NET教程
{ 100分 } ,特性(Attributes)在Asp.net项目中的实际例子。好了立即给分
{ 100分 } ,特性(Attributes)在Asp.net项目中的实际例子。好了立即给分
日期:2014-05-18 浏览次数:20824 次
{ 100分 } ,求一个特性(Attributes)在Asp.net项目中的实际例子。急,好了立即给分。
如题,请您帮我一把。
------解决方案--------------------
翻了半天,才在箱底找了,此文,希望对你有帮助。
.net Attribute效验的使用方法
近来在做.net的项目,因为会用到实体类,就想在实体类上用Attribute信息来对实体类中的属性进行配制。因为在网上没能找到类似的包,就只能在五一的时候自己写了一个,以下是这个包的使用方法。
首先:需要在web.config中配制验证器。
xml 代码
<configSections>
<sectionGroup name= "Validate ">
<section name= "Validators " type= "Validator.Configuration.ValidateConfigurationSection, Validator "/>
</sectionGroup>
</configSections>
<Validate>
<Validators>
<Validator name= "Email " validateType= "match " validateInfo= "\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* " message= "{0} is\ 't Email "/>
<Validator name= "NotNull " validateType= "inner " validateInfo= "NotNull " message= "{0}不能为空! "/>
<Validator name= "Length " validateType= "inner " validateInfo= "Length " message= "{0}字符串长度不能超过{1}! "/>
<Validator name= "Decimal " validateType= "inner " validateInfo= "Decimal " message= "{0}必须大于{1},{0}必须小于{1} "/>
<Validator name= "TestClass " validateType= "clazz " validateInfo= "Validator.Test.TestObj, Validator " message= "{0}class测试! "/>
</Validators>
</Validate>
Validator 的Name为验证器的名称,这里要以attribute类中工ValidatorName相对应,validateType是一个枚举,他有代表着,验 证器的三个类型,inner是使用内置的验证器,match是正则表达式的验证器,clazz是实现iValidator的类做的验证器。后面validateInfo在种自的类型中有各自的意义,在inner时,他要以Name相同;在match时,他是一个正则表达式;在clazz时,他是一个类的AssemblyInfo信息,要显示的错误信息。
第二部,为每一个验证器写一个Attribut.
c# 代码
public class NotNullValidateType : ValidateType
{
public NotNullValidateType(String sColName)
{
this.ColName = sColName;
this.ValidatorName = "NotNull ";
}
}
在这里我们必须继承ValidateType类,在这个类里我们实现了IValidateType的接口,我们必须为这个接口中的属性进行填值。
其中ValidatorName 是一个必输的,他就是在web.config 的配置的验证器名,ColName 是字段的名字,param 是要传入的参数。
c# 代码
public interface IValidateType
{
string Param{get;set;}
string ValidatorName{get;set;}
string ColName{get;set;}
}
第三部,验证器的编写
inner验证器是内置的验证器,所以我们不能添加他。
match验证器是正则表达式验证器,只要在配置中配制好就可以拥有这个功能。
clazz验证器是自定义类验证器,这个类配置到config中,且已经实现了IValidator.cs类。
c# 代码
public class TestObj :ValidateType, IValidator
{
public TestObj()
{
this.ValidatorName = "TestClass ";
}
public TestObj(String sColName)
{
this.ColName = sColName;
this.ValidatorName = "TestClass ";
}
#region IValidator 成员
public bool validator(object value, ValidatorInfo vi, IValidateType vt)
{
//Console.Write( "hello world gettype ");
return false;
}
#endregion
}
最后, attribute的使用,
c# 代码
public class UserObject
{
string _code;
string _email;
[ValidateType( "NotNull ")]
[TestObj]
[StringLengthValidateType(2)]
public string Code
{
get { return _code; }
set { _code = value; }
}
[EmailValidateType(null)]
public string Email
{
get { return _email; }
set { _email = value
上一篇:[环境搭建] VS-Visual Studio-IIS Express 支持局域网访问 远程调试
下一篇: 日期范围的有关问题,……
免责声明:
本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
相关资料
更多>
ASP.Net调试之三板斧:第三招
如何用.NET Array类的Sort方法分类数值
最后10分.求答为何小弟我看微软webcast课程只有声音没图象?
html页面 js跳转页面出现乱码,该如何处理
将一个datagrid放在table中实现内部滚动,怎么实现行选择的时候定位?
新装上VS.2005 无法Debug 请遇到过的朋友帮个忙解释一下。该如何解决
ewebeditor和vs2005的疑问?解决方法
asp.net发布网站的有关问题
ASP数据库列表显示数据程序
推荐阅读
更多>
MVC扩展控制器, 把部分视图转换成字符串(带验证信息), 并以json传递给前端视图
请问关于ExecuteNonQuery的使用
走近VB.Net(二) 再谈函数调用
无法打开备份设备 设备出现异常或设备脱机
帮忙写上SQL语句
请教个有关问题,mobile SelectionList 的一点疑问
用Visual C#打造个性化的IE浏览器(上)
uploadify插件下传图片如何保存到数据库?用ASP.NET实现
简单的数据库联接有关问题
DataGrid中加入CheckBox,并实现单选
DataList中CommandName解决方法
ASP.NET教程:截取字符串
请问:关于多站点开发
安装VS2012,最后提示异常,请
f=abc456这样的字符串如何能以最简单方式获取=号左边的值和右边的值不用Split
GridView中如何更改显示的值
在ASP.NET中用XmlDocument怎么删除XML文件中的某一结点
使用OleDbDataAdapter时OleDbConnection不需要Open()和Close()?解决思路
repeater中按回车从一个textbox跳到下一个textbox?该怎么解决
.net在发布项目生成时,报错:数据异常(循环冗余检查)