爱易网
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 浏览次数:20560 次
{ 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 支持局域网访问 远程调试
下一篇: 日期范围的有关问题,……
免责声明:
本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
相关资料
更多>
用C#编写发手机中文短信息Windows服务
复制文件夹所有内容和删除整个文件夹的2个函数_Asp.Net开发
“应用浏览器将用户重定向到另一页”和“使用服务器端方法将用户重定向到另一页”有什么不同
解释一上这句代码意思
Access Update 替select值出错 操作必须使用一个可更新的语句
谈Microsoft .NET战略
datalist中获取值的方法,该如何解决
如何读取datagrid中的所有行
GridView,没网格线
推荐阅读
更多>
求WebGrid最新破解版下载,小弟我结帖迅速
ASP.NET cookie保存不成功有关问题!
哭求:关于在GridView增加一行,然后在GridView模板列动态绑定上拉框的值有关问题
为什么生成不了COOKIE?解决办法
顶者有分,怎么解决ASP.NET中DATALIST绑定显示图片变形有关问题,图片的长宽与原尺寸不成比例而引起的
为什么asp.net4.0中禁用请求验证还提示“有潜在危险的 Request.Form 值”解决思路
ASP.NET 页面间传值有关问题,但有点急
如何样在前台HTML中得到一个服务器控件的值
求大家伙儿帮小弟一个忙,看看这个存储过程哪错呢
asp.net 生成伪静态后怎么获取地址栏中的静态url
100求解 vs2005水晶报表有关问题 急 解决马上给分
asp.net 用什么干图表
vs2008 asp.net Treeview,该如何处理
使用C#开发一个简单的P2P应用
Vb.net向sql server数据库中保存图片(二)
datagrid绑定时怎么将数据库中的1或0转换为是否
一个创业见解,大家发表一下看法
在IE浏览器中使用Windows窗体控件(一)
怎么用正则表达式匹配任意字符啊(汉字,英文,数字等)
有些问题事过境迁没必要拿beta1的问题来问的,代答KW问题