• 通过特性动态获取属性及值


     


    using System.Collections.Generic;
    using System.Data.SqlClient;
    using System.Data;
    using System;

    namespace NPetshop.Domain
    {
     
    /***************************************************************************
     * 
     *       功能:     product实体类
     *       作者:     李伟伟
     *       日期:     2011-5-28
     *       描述:     11111111111111111111111111
     * ************************************************************************
    */
     [Serializable]
        
    public  class productEntity 
        { 
      
    #region 属性
      
    /// <summary>
            
    /// 获取或设置Id字段的值 自增列 System.Int32
      
    /// 数据库类型长度:int 大小:4 精度:10
            
    /// </summary>
            [Column("Id")]
            
    public System.Int32 Id{getset;}
      
      
    /// <summary>
            
    /// 获取或设置Name字段的值  System.String
      
    /// 数据库类型长度:varchar 大小:50 
            
    /// </summary>
            [Column("Name")]
            
    public System.String Name{getset;}
      
      
    /// <summary>
            
    /// 获取或设置UserId字段的值  System.Int32
      
    /// 数据库类型长度:int 大小:4 精度:10
            
    /// </summary>
            [Column("UserId")]
            
    public System.Int32 UserId{getset;}
      
      
    #endregion
      
      
    #region 构造函数
      
      
    /// <summary>
         
    /// 构造函数
        
    /// </summary>
      
    /// <param name="name">Name</param>
      
    /// <param name="userId">UserId</param>
            public productEntity(System.String name,System.Int32 userId)
            {
       
    this.Name = name;
       
    this.UserId = userId;
      }
      
      
    /// <summary>
         
    /// 构造函数
        
    /// </summary>
      public productEntity()
            {
       
    this.Name = null;
       
    this.UserId = 0;
      }
            
    #endregion
        }
    }

     

    //特性

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;

    namespace NPetshop.Domain
    {
        
    /// <summary>
        
    /// 将类的属性与数据库表中的列相关联。
        
    /// </summary>
        [AttributeUsage(AttributeTargets.Property)]
        
    public sealed class ColumnAttribute : System.Attribute
        {
            
    /// <summary>
            
    /// 获取或设置列的名称。
            
    /// </summary>
            public string ColumnName { getprivate set; }

            
    /// <summary>
            
    /// 获取或设置列的标题。
            
    /// </summary>
            public string ColumnCaption { getprivate set; }

            
    /// <summary>
            
    /// 获取或设置列的类型。
            
    /// </summary>
            public SqlDbType ColumnType { getprivate set; }

            
    /// <summary>
            
    /// 初始化 MagicStar.Entity.ColumnAttribute 类的一个新实例。
            
    /// </summary>
            
    /// <param name="columnCaption">表或视图的标题。</param>
            
    /// <param name="columnName">表或视图的名称。</param>
            
    /// <param name="columnType">类型。</param>
            public ColumnAttribute(string columnName, string columnCaption, SqlDbType columnType)
            {
                ColumnName 
    = columnName;
                ColumnCaption 
    = columnCaption;
                ColumnType 
    = columnType;
            }


            
    /// <summary>
            
    /// 初始化 MagicStar.Entity.ColumnAttribute 类的一个新实例。
            
    /// </summary>
            
    /// <param name="columnCaption">表或视图的标题。</param>
            
    /// <param name="columnName">表或视图的名称。</param>
            
    /// <param name="columnType">类型。</param>
            public ColumnAttribute(string columnName)
            {
                ColumnName 
    = columnName;
            }
        }
    }


            

     

    ///实现

               productEntity _roductEntity 
    = new productEntity();
                _roductEntity.Id 
    = 1;
                _roductEntity.Name 
    = "2";


                Type type 
    = _roductEntity.GetType();
                PropertyInfo[] properties 
    = type.GetProperties();

                
    foreach (PropertyInfo property in properties)
                {
                    Response.Write(type.GetProperty(property.Name).GetValue(_roductEntity, 
    null));
                    Response.Write(property.Name 
    + "");
                }


     

  • 相关阅读:
    用c语言程序判断谁是小偷
    android获取Button文本 从一个按钮开关中获取文本
    android 让一个控件按钮居于底部的几种方法
    java获取文件夹下所有文件的名称
    解决 apache error 指定网络名不再可用 "an unknown filter was not added: DEFLATE"的问题
    查看window隐藏进程,用微软的ProcessExplorer查看到电脑有个“硬件中断”占用大量CPU 解决办法
    Android中Message机制的灵活应用
    Thread和Looper以及Handler和Message详解 Android开发必读
    Android的Looper类使用的5个要点
    android的消息处理机制(图+源码分析)——Looper,Handler,Message
  • 原文地址:https://www.cnblogs.com/aaa6818162/p/2062195.html
Copyright © 2020-2023  润新知