【问题标题】:How to get class members values having string of their names? [duplicate]如何获取具有名称字符串的类成员值? [复制]
【发布时间】:2012-12-17 21:21:05
【问题描述】:

可能重复:
How can I read the properties of a C# class dynamically?

我必须只使用他们名字的字符串来获取类成员的值。我想我必须使用反射,但我不确定如何使用。你能帮帮我吗?

【问题讨论】:

  • 在我能提供帮助之前,我有一个问题 - 你在说什么?你能发布一个你正在尝试做什么的例子吗?
  • 是的。如果您没有真正提供任何您需要的示例,我们将投票结束该问题。

标签: c# .net reflection


【解决方案1】:
MemberInfo member = typeof(MyClass).GetMember("membername");

GetMember reference.

如果您知道要寻找的会员类型,可以使用.GetMethod.GetField.GetProperty 等。

如果您不知道您正在使用的类型:

var myobject = someobject;
string membername = "somemember";
MemberInfo member = myobject.GetType().GetMember(membername);

不同的成员类型有不同的获取价值的方法。对于你会做的财产:

var myobject = someobject;
string propertyname = "somemember";
PropertyInfo property = myobject.GetType().GetProperty(membername);
object value = property.GetValue(myobject, null);

【讨论】:

    【解决方案2】:
    public class Foo
    {
      public string A { get; set; }
    }
    public class Example
    {
      public void GetPropertyValueExample()
      {
        Foo f = new Foo();
        f.A = "Example";
        var val = f.GetType().GetProperty("A").GetValue(f, null);
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-03
      • 2021-08-30
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      • 2011-04-12
      相关资源
      最近更新 更多