C#按属性名反射获取和设置对象属性值
来源:互联网 发布:学软件开发如何 编辑:程序博客网 时间:2024/05/13 05:05
using System;
using System.Collections.Generic;
using System.Reflection;
namespace test
{
public class MyClass
{
public static void Main()
{
Product p=new Product();
//
p.Pkid=12;
p.ProductName="安全气囊";
Console.WriteLine(p.ShowMe());
//获取
PropertyInfo propertyPkid=typeof(Product).GetProperty("Pkid");
Console.WriteLine(propertyPkid.GetValue(p,null));//获取1
PropertyInfo propertyProductName=typeof(Product).GetProperty("ProductName");
Console.WriteLine(propertyProductName.GetValue(p,null));//获取2
//设置
PropertyInfo propertyPkid_2=typeof(Product).GetProperty("Pkid");
propertyPkid_2.SetValue(p,99,null);//设置1
PropertyInfo propertyProductName_2=typeof(Product).GetProperty("ProductName");
propertyProductName_2.SetValue(p,"七扭八歪",null);//设置2
Console.WriteLine(p.ShowMe());
//
Console.ReadLine();
}
}
/// <summary>
///
/// </summary>
public class Product
{
public int Pkid
{
get{return _pkid;}
set{_pkid = value;}
}
private int _pkid;
public string ProductName
{
get{return _productName;}
set{_productName=value;}
}
private string _productName;
public string ShowMe()
{
return string.Format("Pkid={0}\tProductName={1}",Pkid,ProductName);
}
}
}
转载链接:点击打开链接
自己提取了公共方法:
#region 根据属性名称获取值
/// <summary>
/// 根据属性名称获取值
/// </summary>
/// <param name="obj">对象实例</param>
/// <param name="strAttribute">属性名</param>
/// <returns>object</returns>
private static object GetValueByStrAttribute(object obj, string strAttribute)
{
System.Reflection.PropertyInfo propertyInfoName = (obj.GetType()).GetProperty(strAttribute);
return propertyInfoName.GetValue(obj, null);
}
#endregion
#region 根据属性名称设置值
/// <summary>
/// 根据属性名称设置值
/// </summary>
/// <param name="obj">对象实例</param>
/// <param name="strAttribute">属性名</param>
/// <param name="value">值</param>
private static void SetValueByStrAttribute(object obj, string strAttribute, object value)
{
System.Reflection.PropertyInfo propertyInfoName = (obj.GetType()).GetProperty(strAttribute);
propertyInfoName.SetValue(obj, value, null);
}
#endregion
- C#按属性名反射获取和设置对象属性值
- 反射获取属性名和属性值
- C#反射设置属性值和获取属性值
- C#反射设置属性值和获取属性值
- Java通过反射获取和设置对象的属性值
- C# 通过反射获取/设置属性值
- C#利用反射获取对象属性值
- C#利用反射获取对象属性值
- java反射获取类的属性名和属性值
- C# 反射属性值和遍历属性名
- 遍历获取对象属性名和属性值
- 反射获取对象的属性名和对应的值并转为json字符串
- 利用Java反射根据属性名获取对象值和类型代码
- C#反射 从一个文本文档读取属性名和对应值,复制给对象
- C#利用反射遍历对象的属性和属性值
- C#根据类名获取属性名和DESCRIPTION值
- Object get["属性"]; java反射技术通过对象和属性名得到属性值
- 通过反射获取属性名和属性类型
- linux vim常用命令
- C#获取文件路径的几种方法【鸡蛋】
- Android分享中,如何过滤指定的应用,并且对不同的分享方式发送不同的内容?
- 进程通信:共享内存通信方式
- [APK破解]牛牛粤语学习机v1.6.4,积分1000,免费使用全功能
- C#按属性名反射获取和设置对象属性值
- 控件通过XML更改图片的使用方法
- Vi使用
- Oracle数据库的常用命令
- Dicom文件解析
- Notepad++使用教程
- 【设计模式】【简单工厂】
- 黑马程序员---包与包之间的访问方式: 3种
- b标签、Strong标签、h1标签的区别以及使用