【Dynamics AX 6】X++新特性之Attribute

在Dynamics AX 6中,有引入一种称为Attribute的新特性。请看:

[SysTestTargetAttribute('MyClass')]
class MyTestCase extends SysTestCase
{
}

【注:以上代码来自http://blogs.msdn.com/mfp/archive/2009/04/02/ax6-sneak-preview-x-unit-test-improvements.aspx

其实到目前为止,我手头没有拿到Dynamics AX 6的版本,这种新特性也是从上面的博客中看到。但我想,对于只专注于X++开发的人来说,这种写法有点让人不好理解。因此我打算在这里做个简单的介绍。

事实上这种思想来自于.NET的attribute,attribute也是一个类,这个类的主要作用是为其它的类提供描述信息,也就是常说的meta data。比如上面的代码,SysTestTargetAttribute是特性类(attribute class),而MyTestCase类则是被描述类(decorated class),SysTestTargetAttribute描述了这样一种事实:MyTestCase是一种被标记为SysTestTargetAttribute的类,而标记的详细信息则由SysTestTargetAttribute的构造函数或成员属性指定。

有关于Attribute与类的成员属性之间的关系,读者可以参考我在CSAI系统架构设计专家组的这篇文章:《再谈属性与特性》。

你可能感兴趣的:(attribute)