代码改变世界

通过反射得到某个实体的属性值

2012-07-17 21:04  左眼微笑右眼泪  阅读(376)  评论(0编辑  收藏  举报

    当我们知道某个实体,以及这个实体中某个属性的名称,我们就可以通过反射来得到这个属性的值。代码如下:

/// <summary> 
    /// 获取对象中的属性值 
    /// </summary> 
    /// <param name="FieldName">属性名</param> 
    /// <param name="obj">对象</param> 
    /// <returns></returns> 
    public string GetModelValue(object obj, string FieldName)
    {
        try
        {
            Type Ts = obj.GetType();
            object o = Ts.GetProperty(FieldName).GetValue(obj, null);
            string Value = Convert.ToString(o);
            if (string.IsNullOrEmpty(Value))
            {
                return null;
            }
            return Value;
        }
        catch
        {
            return null;
        }
    }

我们还可以通过反射得到某个嵌入的资源文件,只需要传入一个资源的名称即可:

private Bitmap GetResourseByName(string resourceName)
{
    System.Resources.ResourceManager rm = new ResourceManager("MyTest.Properties.Resources", Assembly.GetExecutingAssembly());
    Bitmap bmp=(Bitmap)rm.GetObject(resourceName);
    if (bmp != null)
    {
        return bmp;
    }
    else
    {
        return Properties.Resources.remove;
    }
 
}

有一点需要注意的就是第三行代码一定要传入完整的命令空间,要不然可能得不到值。