.NET 技术FAQ(六)-----属性

原创 2004年09月08日 15:41:00

6. 属性
6.1 什么是属性?
最少有两种类型的 .NET 属性。第一类我称其为 metadata 属性—它允许将某些数据附加到类或方法上。这些数据称为类的 metadata 的一部分,并且可以像类的其它 metadata 一样通过映射来访问。metadata 的另一种属性是 [serializable],将它附加到类上表示类的实例可以被串行化。
[serializable] public class CTest {}
另一种类型的属性是上下文属性。上下文类型的属性使用和 metadata 相似的语法,但实际上它们是不同的。上下文类型属性提供一种解释机制,通过这种机制,实例的活动和方法调用可以是预先处理和/或随后处理的。如果你了解 Keith Brown 的通用委托器你可能熟悉这种思想。
 
6.2 我能创建自己的 metadata 属性吗?
是的。简单地从 System.Attribute 导出一个类并将其标记为 AttributeUsage 属性。例如:
[AttributeUsage(AttributeTargets.Class)]
public class InspiredByAttribute : System.Attribute
{
 public string InspiredBy;

 public InspiredByAttribute( string inspiredBy )
 {
  InspiredBy = inspiredBy;
 }
}


[InspiredBy("Andy Mc's brilliant .NET FAQ")]
class CTest
{
}
class CApp
{
 public static void Main()
 {
             object[] atts = typeof(CTest).GetCustomAttributes();
             foreach( object att in atts )
             if( att is InspiredByAttribute )
              Console.WriteLine( "Class CTest was inspired by {0}", _
     ((InspiredByAttribute)att).InspiredBy  );
 }
}
 

绘制六芒星战斗力属性图 —— h5 canvas 初体验

最近用MUI做Web app时想实现一个六芒星战斗力图的(类似LPL赛前战队实力分析图)效果,由于正多边形是十分规则的,所以感觉很轻易就可以用h5 canvas来实现。...
  • Emptyset110
  • Emptyset110
  • 2015年09月01日 08:50
  • 2660

html5大文件上传技术(四)

五、MD5文件校验
  • u012743824
  • u012743824
  • 2017年12月29日 08:53
  • 20

深入探索spring技术内幕(六): JDK动态代理和cglib生成代理

[ JDK生成代理 ] JDK中给我们提供了一个Proxy类可以动态的给我们生成代理. 假定我们要做一个权限管理系统, 需要控制用户对某一个方法的访问. 如果user为null, 那么不让用户访问...
  • zdp072
  • zdp072
  • 2014年05月12日 23:46
  • 1429

ReportStudio入门教程(六) - 标识符、属性、度量

在这里,我们简单的了解下ReportStudio中使用到的3个基本概念
  • jolingogo
  • jolingogo
  • 2014年04月07日 09:54
  • 2214

你必须知道的.NET之特性和属性

特性和属性
  • xiaouncle
  • xiaouncle
  • 2016年09月18日 14:19
  • 2073

关于.NET技术前途问题的讨论

我去年曾经在论坛发起过关于.NET技术前途问题这个话题的讨论,也引起了很多同行和朋友的回复,时间过去大半年,自己也有了一些新的理解。本文的目的就是将其中一些精彩的观点整理出来并谈谈自己的观点。引子 ...
  • guwei4037
  • guwei4037
  • 2016年03月23日 13:42
  • 9479

html5大文件上传技术(一)

需求: 1、大文件(文件大小无限制)web上传; 2、显示上传进度条,断点续传; 3、多文件列表上传; 4、MD5文件校验。 开发环境:Visual Studio 2017  语言:C# ...
  • u012743824
  • u012743824
  • 2017年12月26日 09:57
  • 44

2017年,你需要GET的9大技术领域

2016年过去了,然而我一点也不怀念它,因为2017年的技术趋势更加吸引人。回顾一年里业界的发展,2017年的技术趋势初现端倪。根据CSDN知识库这一年来大家关注的热门知识图谱,我们来给大家梳理一下2...
  • u012662731
  • u012662731
  • 2017年01月12日 20:36
  • 872

.NET中的缓存技术概览

从分布上来看,我们可以概括为客户端缓存和服务器端缓存,如下图所示: 客户端缓存    这点大家都有直观的印象。比如你去一个新的网站,第一次可能要花一阵子时间才能载入整个页面。而以后再去呢,时间就会...
  • wangboxian
  • wangboxian
  • 2014年11月28日 10:44
  • 4283

运维路上的FAQ

遇到的看见的,长期更新~~~ 1.linux乱码问题     [root@vps software]# vi  /etc/sysconfig/i18n     LANG='zh_...
  • u010718976
  • u010718976
  • 2017年01月10日 11:00
  • 183
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.NET 技术FAQ(六)-----属性
举报原因:
原因补充:

(最多只允许输入30个字)