[英]How to invoke method, using reflection, on instantiated object?
我有一些基础对象“ Car”,“ dog”,“ cat”,它们实现了接口“ IGWUIElement”。 我有这些接口的列表:列出myList。
在运行时,我遍历元素列表,并检查类的名称(使用反射),我需要填充其属性-这不是接口的一部分)。 我有一个xml文档,描述了属性和应分配给它们的值。 这是我的界面实例化。
IGWUIElement newUIElement = (IGWUIElement)Activator.CreateInstance(result);
如何从属性名称中使用特定值调用属性(请注意,数据类型仅限于int和string)。 每个对象都有不同的属性。
希望这有道理...
/ H4mm3r
使用PropertyInfo.SetValue()
PropertyInfo piInstance = typeof(IGWUIElement).GetProperty("property_name");
piInstance.SetValue(newUIElement, value, null);
有关msdn的更多信息。
您可以这样做:
IGWUIElement element = myList[0];
// Set a string property
element.GetType().InvokeMember("SomeStringProperty", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetProperty, Type.DefaultBinder, element, "The String Value");
// Set an int property
element.GetType().InvokeMember("SomeIntProperty", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetProperty, Type.DefaultBinder, element, 3);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.