关于成员值的取得

lucifier 2009-04-13 08:06:44
想做一个如下的共同方法:
MethodA(object obj, string strProperty)

其中obj是一个只有属性的类,类似javabean
例如:
public class DataContract
{
public decimal ProductId {set; get; }
}
strProperty是一个属性名.

这个方法要实现的结果就是:当输入一个类和一个属性的时候,将这个类中于这个属性一致的成员的值返回来.

比如:
...
DataContract contract = new DataContract();
contract.ProductId = new decimal(20);
MethodA(contract, "ProductId");
上面的代码执行后,想要得到ProductId对应的值:20
请问各位怎么实现.

...全文
61 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ls25145 2009-04-13
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DataContract contract = new DataContract();
contract.ProductId = new decimal(20);
object temp = MethodA(contract, "ProductId");
Console.WriteLine(temp);
Console.ReadKey();
}

private static object MethodA(object obj, string property)
{
return obj.GetType().InvokeMember(property, System.Reflection.BindingFlags.GetProperty, null, obj, null);
}
}
}
cja03 2009-04-13
  • 打赏
  • 举报
回复
MethodA(contract, "ProductId");
-------------------------------------
既然有了 contract 了,为什么不直接获取? contract.ProductID

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧