爱易网
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 浏览次数:20827 次
{ 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刚完成一个商城,大家给点意见解决思路
自己开发了一个个人网站,欢迎大家给点意见,该怎么解决
sqldatasource取不到值解决思路
listbox 模版列 DataSource 的绑定 或许 字段按照要求换行
ASP.NET2.0中用户自定义控件中加Form出现有关问题?救!
程序运行过程中动态改变控件大小的方法_Asp.NET开发实例
如何用C#.NET处理WORD的事件
推荐阅读
更多>
大家好!问一关于。NET的有关问题
Web Service描述语言 WSDL 详解(2)--WSDL文件示例[转]
dll嵌入到aspx页面中,没法正常显示!
ASP.NET 2.0中使用样式、主题和皮肤
报表展示有关问题
开始你的第一个多语言版本的dotNET 应用程序(WinForm篇)
小弟我对URL请求流程的理解
小女子.net中用OWC11画折线图,数据都显示正确,折线却不显示
datalist 有关问题 .
界面美化,该怎么处理
给大家看一段asp.net代码,解决一个小疑点
webconfig的设置节点说明
如何能生成上面的JSON格式
Gridview绑定按钮提交后的有关问题
在aspx页面中调用js的有关问题,(帮顶有分)
请教在GridView中能使用DropDownList控件吗
这个移动的如何做的呢>
分页存储过程有一个有关问题 , 不知道怎么解决?
OleDbParameterCollection 只接受非空的 OleDbParameter 类型对象,不接受 Int32 对象。该如何处理
用Javascript给下拉列表增加选项,但页面刷新后就没了,如何解决