这是我看别人的代码的一个类
namespace MyObject
{
    using System;
    using Grove.ORM;    [DataTable("Member", TableDescription="用户表")]
    public class MemberInfo
    {
        Int32 _MemberID = 0;              
        String _MemberName = "";                      [KeyField("MemberID ", FieldDescription="用户ID号")]
        public Int32 MemberID 
        {
            get { return this._MemberID ; }
            set { this._MemberID  = value; }
        }
        [DataField("MemberName ", FieldDescription="用户名")]
        public String MemberName 
        {
            get { return this._MemberName ; }
            set { this._MemberName = value; }
        }
    }
}
然后他可以在程序中读取这个类的如MemberName 的说明 
如对应数据库字段MemberName 
如这个String MemberName 的说明:用户名
在这里我知道他是引用了Grove这个Dll就有上面的这些功能的现在我要问的是,如果我不引用这个Grove,那我程序中要怎么来写才能实现如上面建立的这一个类谢谢

解决方案 »

  1.   

    如果我没理解错的话,参考http://msdn2.microsoft.com/EN-US/library/aa288454(VS.71).aspx
      

  2.   

    偶没猜错的话,人家搞的 ORM
      

  3.   

    这叫 Attribute(属性/特性),作为类型的元数据存在 dll 中当然你也是可以,自己弄滴,MSDN 利用属性扩展元数据 
    http://msdn2.microsoft.com/zh-cn/library/aa288454(VS.71).aspx
      

  4.   

    使用自定义特性.NET Framework程序设计这本书有详细论述
      

  5.   

    [DefaultValue(typeof(MediaPlayerUIMode), "full"), Category("MediaPlayer 播放器UI界面"), Description("显示 Media Player 播放器的界面样式。")]
        public MediaPlayerUIMode UIMode
        {
          get{ }
          set{ }
        }
      

  6.   

    自定义特性到
    http://msdn2.microsoft.com/zh-cn/library/aa288454(VS.71).aspx
    上面去看看。
      

  7.   

    为什么在VB.NEt中要用AttributeUsage声明为一次性使用的属性,并且用AttributeTargets指定是方法呢。
    <AttributeUsage(AttributeTargets.Method)> _
        Public Class AnimalTypeAttribute为什么同样的功能在C#里面就不需要上面的两部分操作呢
    public class AnimalTypeAttribute : Attribute {我参考的是http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpref/html/frlrfsystemattributeclasstopic.asp
    达人能给我解释下吗。关注!