C#使用参数为object属性赋值

时间:2014-10-07 11:08:01

标签: c# vbscript gettype invokemember getproperty

我在vbs中有一个对象:

 Msgbox myobject.parametro("parm")

我可以用这种方式在C#中使用它:

Object test = myobject.GetType().InvokeMember("parametro", 
    BindingFlags.GetProperty, 
    null, 
    myobject, 
    new object[] { "parm" });

Messagebox.show(test.toString());

我如何在C#中为属性赋值?

例如:

myobject.parametro("parm")=725

2 个答案:

答案 0 :(得分:1)

我想你的意思是:

myObject.parametro["parm"] = 627; // set
var test = myObject.parametro["parm"]; // get

答案 1 :(得分:0)

将BindingFlags更改为SetProperty

SomeClass c = new SomeClass();
c.GetType().InvokeMember("Prop", BindingFlags.SetProperty, null, c, new object[]{ 1 });