我想提供未知的“对象”并返回其中一个成员的值。 C#中需要响应。
通常我想我正在寻找这种方法的代码 public static object GetObjectMemberValue(object myObject,string memberName)
更具体地说,我正在为Silverlight中的资源字符串执行此操作,并且需要编写此方法。它驻留在一个共同的项目中用于对几个不同的Resx词典,因此我无法访问类型信息。 public static string GetString(object StringResources,string ResourceId)
谢谢!
答案 0 :(得分:5)
这会得到你的价值......你能在问题的resx部分给我更多信息吗?
public static object GetObjectMemberValue(object myObject, string memberName)
{
PropertyInfo dateProperty = myObject.GetType().GetProperty(memberName);
return dateProperty.GetValue(myObject, null);
}
答案 1 :(得分:1)
如果您知道对象类型,那么转换为它?
如果您不知道显式类型,它至少应该实现一个接口?
MyType value = (MyType)objectGetter() //this is the function that returns the unknown.
value.GetMember()
答案 2 :(得分:1)
static class ObjectExtensions {
public static object GetObjectPropertyValue(this object o, string propertyName) {
return o.GetType().GetProperty(propertyName).GetValue(o, null);
}
}
class Test {
public string Message {get; set;}
}
class Program {
static void Main(string[] args) {
object t = new Test { Message = "Hello, World!" };
Console.WriteLine(t.GetObjectPropertyValue("Message").ToString());
}
}
答案 3 :(得分:0)
答案 4 :(得分:0)
o.GetType().InvokeMember( "MemberName", BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty, null, o, null );