一点小应用.如下.是LinqToSql生成的一段代码:
可以看到每个属性上有对应的特性项.(包括类型与长度等.)而我要获得相应表里对应字段的长度.
如下.
//下面是对上面对象属性的遍历.
foreach (PropertyInfo item in ps)
{
//属性是否是String
if (item.ToString().Contains("String"))
{
//获得这个属性上的特性.
ColumnAttribute a = Attribute.GetCustomAttribute(item, typeof(ColumnAttribute)) as ColumnAttribute;
//取得这个特性里指出相关字段的长度.
string length = a.DbType.Substring(startIndex, a.DbType.IndexOf(')') - startIndex);
}
完整的你可以看如下.
http://www.cnblogs.com/zhouxin/archive/2009/12/04/1617036.html
呵呵,楼主的问题问得太大了!
这个需要楼主自己慢慢体会了。。。。
不过给一个Link,C# 2.0 中的匿名delegate:
.net 框架自身里面 就有很多 应用attribute的例子
比如 Flags(位枚举) Serializable(可序列化)
如果,楼主还是觉得这些难理解的话
建议你看看postsharp这个AOP框架,如何利用attribute进行注入的。
还是不行的话,建议看看《clr via c# 》第二版 331页。
提供一个方向,特性很多时候和反射结合起来,两者合起来用很方便!
我准备写 MSIL【五】-------C#特性Attribute揭秘