通过特性动态获取属性及值
2011-05-29 17:27
232 查看
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{get; set;}
/// <summary>
/// 获取或设置Name字段的值 System.String
/// 数据库类型长度:varchar 大小:50
/// </summary>
[Column("Name")]
public System.String Name{get; set;}
/// <summary>
/// 获取或设置UserId字段的值 System.Int32
/// 数据库类型长度:int 大小:4 精度:10
/// </summary>
[Column("UserId")]
public System.Int32 UserId{get; set;}
#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 { get; private set; }
/// <summary>
/// 获取或设置列的标题。
/// </summary>
public string ColumnCaption { get; private set; }
/// <summary>
/// 获取或设置列的类型。
/// </summary>
public SqlDbType ColumnType { get; private 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 + "");
}
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{get; set;}
/// <summary>
/// 获取或设置Name字段的值 System.String
/// 数据库类型长度:varchar 大小:50
/// </summary>
[Column("Name")]
public System.String Name{get; set;}
/// <summary>
/// 获取或设置UserId字段的值 System.Int32
/// 数据库类型长度:int 大小:4 精度:10
/// </summary>
[Column("UserId")]
public System.Int32 UserId{get; set;}
#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 { get; private set; }
/// <summary>
/// 获取或设置列的标题。
/// </summary>
public string ColumnCaption { get; private set; }
/// <summary>
/// 获取或设置列的类型。
/// </summary>
public SqlDbType ColumnType { get; private 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 + "");
}
相关文章推荐
- 反射学习2-通过反射机制动态获取属性的值模拟Struts的自动赋值
- 反射学习2-通过反射机制动态获取属性的值模拟Struts的自动赋值
- 6.通过反射动态创建对象,获取属性,获取方法
- C#中的特性 和 通过反射获取属性上的特性
- C#中的PropertyGrid绑定对象,通过改变某一值而动态设置部分属性的特性
- 通过反射获取特性属性Id
- android通过反射来获取系统属性SystemProperties
- java通过System.getProperty获取系统属性
- 动态获取对象属性
- c#通过反射获取类上的自定义特性
- 通过反射获取类和父类的属性和属性值
- jQuery 动态内容添,获取HTML标签和属性
- 通过name属性获取控件的值
- Runtime之动态获取属性列表
- MVC中获取模型属性的Range和StringLength验证特性设置
- 【Unity&精灵】如何通过已知道的坐标获取物体&动态生成墙壁
- 通过反射获取所有属性
- 通过Response.Filter属性实现网站内容的动态GZIP压缩
- 通过反射获取类属性字段的个数
- python动态获取对象的属性和方法