• c# 对象自动填充


    为了简化开发,把这个函数拿来记起了,自动从数据库里面填充数据到对象,函数为过程中的一部分,大体如下:

    public virtual void Load(IDataReader reader)
    {
    FieldInfo[] FieldInfos
    = this.GetType().GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);

    foreach (FieldInfo info in FieldInfos)
    {
    DBColumnAttribute attr
    = (DBColumnAttribute)Attribute.GetCustomAttribute(info, typeof(DBColumnAttribute));
    if (attr != null)
    {
    DataTable dt
    = reader.GetSchemaTable();
    if (IsContainColumn(dt, attr.DBColumnName) && !IsNullDataValue(reader[attr.DBColumnName]))
    {
    info.SetValue(
    this, GetValue(reader[attr.DBColumnName], info.FieldType));
    }
    }
    }
    }

    函数没有什么特别的地方,就是用了.net里面的Attribute这个东西。还有一部分为DBColumnAttribute 的定义:

    1 [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)]
    2 protected class DBColumnAttribute : Attribute
    3 {
    4 public DBColumnAttribute(string DBColumnName)
    5 {
    6 m_DBColumnName = DBColumnName;
    7 }
    8
    9 private string m_DBColumnName;
    10 public string DBColumnName
    11 {
    12 get
    13 {
    14 return m_DBColumnName;
    15 }
    16 }
    17 }

    记下以备不时之需。


  • 相关阅读:
    C++基础学习1-编译与链接
    html学习
    使用BP拦截POST请求包
    2019.9.17
    搭建LAMP环境
    2019.9.16
    2019.9.12
    2019.9.11
    手脱无名壳tslgame_rl
    一款自制壳的脱壳
  • 原文地址:https://www.cnblogs.com/thilong/p/DoNET.html
Copyright © 2020-2023  润新知