010. 使用.net框架提供的属性

C#允许在类和类成员上声明特性(类), 可在运行时解释类和类的成员. 这个特性也称为属性, 使用Attribute.下面演示如何使用.net框架提供的属性.

 1 using System;
 2 using System.Reflection;
 3 public partial class _Default : System.Web.UI.Page
 4 {
 5     //自定义属性类
 6     [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
 7     public class BookAttribute : Attribute //Attribute 自定义属性的基类
 8     {
 9         private string BookName;
10         public BookAttribute(string BookName)
11         {
12             this.BookName = BookName;
13         }
14         public string Book
15         {
16             get
17             {
18                 return BookName;
19             }
20         }
21     }
22
23     //多次使用属性类
24     [Book("Asp.net入门基础;")]
25     [Book("C#实战案例")]
26     public class BookInfo
27     {
28         public string binfo = "图书信息***********";
29         public BookInfo()
30         {
31
32         }
33     }
34
35     //页面的page_load调用自定义的属性示例
36     protected void Page_Load(object sender, EventArgs e)
37     {
38         //实例化BookInfo类
39         BookInfo bf = new BookInfo();
40         //对象数组
41         object[] Bookattr;
42         //获取对象类型, 获取有关成员特性的信息并提供对成员元数据的访问
43         MemberInfo Typeinfo = typeof(BookInfo);
44         //提取类型是属性类的成员
45         Bookattr = Typeinfo.GetCustomAttributes(typeof(BookAttribute), false);
46         if (Bookattr.GetLength(0) != 0)
47         {
48             BookAttribute ba = (BookAttribute)(Bookattr[0]);//获取属性类的第一个成员
49             BookAttribute ba2 = (BookAttribute)(Bookattr[1]);//获取属性类的第二个成员
50             Response.Write(bf.binfo);
51             Response.Write("<br/>");
52             Response.Write("图书名称:" + ba.Book + ba2.Book);
53         }
54     }
55 }
时间: 2024-07-30 15:50:03

010. 使用.net框架提供的属性的相关文章

未找到具有固定名称&ldquo;System.Data.SQLite&rdquo;的 ADO.NET 提供程序的实体框架提供程序

用户代码未处理 System.InvalidOperationException   HResult=-2146233079   Message=未找到具有固定名称"System.Data.SQLite"的 ADO.NET 提供程序的实体框架提供程序.请确保在应用程序配置文件的"entityFramework"节中注册了该提供程序.有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=260882.   Source=E

07-使用框架提供的自动建表(没有提供配置文件)

4.2  使用activiti框架自动建表功能 框架提供了和hibernate类似的自动建表功能. 搭建开发环境: 第一步:创建一个web(我们这个框架不是必须依赖tomcat这个容器才可以运行)/java项目activiti1110,如果它是一个struts框架,那就必须创建一个web项目(struts是表现层的一个框架,需要web容器提供支持) 可以使用例子项目的JAR包(不必吝啬) Build Path->Add to Build Path的效果是把JAR包加入构建路径里面,其实就是把JA

06-使用框架提供的建表语句创建数据库表

4.    初始化表结构 4.1  使用activiti框架提供的建表语句 * 第一步:获得建表语句 *  第二步:创建一个数据库 * 第三步:进入当前数据库中 4.2  使用activiti框架的自动建表功能  类似于我们学过的hibernate,它可以自动建表 hbm2ddl.auto = update

Stripes视图框架Java对象属性验证和prototype.js Ajax的测试

Stripes视图框架Java对象属性验证,它允许对字段设置是否必须填写,对数字大小进行限制等.我用prototype.js Ajax 将验证后的数据及时地展示出来,下面来看程序. 1.编写User实体类 此用户共三个属性: name.email.age. package com.boonya.stripes.entity;      public class User {              private String name;              private String

如何修改没有提供对应属性的元素的样式

当我想要修改单选列表前面圆圈的样式时,我发现HTML并没有为其提供可修改的属性.使用以下方法可以为任何没有提供对应属性的元素修改其样式. <label> <input type="radio" name='group' class="hidden-input" /> <span class="your style about checkbox">记住我</span> </label> &

无法为具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类型“System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer”。请确保使用限定程序集的名称且该程序集对运行的应用程序可用。有关详细信息,请参阅 http://go.m

Windows服务中程序发布之后会如下错误: 无法为具有固定名称"System.Data.SqlClient"的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类型"System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer".请确保使用限定程序集的名称且该程序集对运行的应用程序可用.有关详细信息,请参阅 http://go.microsoft.com

【坑】不要使用各种框架提供的内部List

为了代码简洁有时我们会使用一些框架提供的工具类.如 import org.apache.commons.collections.ListUtils; package java.util.Collections; List<String> strList = ListUtils.EMPTY_LIST; List<String> strList1 = Collections.emptyList(); 实际该空List是个内部类,没有实现add等方法,使用时会报错. /** * {@in

ASP.NET MVC验证框架中关于属性标记的通用扩展方法

http://www.cnblogs.com/wlb/archive/2009/12/01/1614209.html 之前写过一篇文章<ASP.NET MVC中的验证>,唯一的遗憾就是在使用Data Annotation Validators方式验证的时候,如果数据库是Entityframework等自动生成的文件,就没有办法使用扩展属性标记进行标记.现在已经开始有了一些其它的Asp.net MVC 验证框架,使用上跟Data Annotation Validators差不太多,但是普遍有这样

【学习】010 Netty异步通信框架

Netty快速入门 什么是Netty Netty 是一个基于 JAVA NIO 类库的异步通信框架,它的架构特点是:异步非阻塞.基于事件驱动.高性能.高可靠性和高可定制性. Netty应用场景 1.分布式开源框架中dubbo.Zookeeper,RocketMQ底层rpc通讯使用就是netty. 2.游戏开发中,底层使用netty通讯. 为什么选择netty 在本小节,我们总结下为什么不建议开发者直接使用JDK的NIO类库进行开发的原因: 1)      NIO的类库和API繁杂,使用麻烦,你需