我有一个需求,需要从引用的dll中向客户端应用程序设置属性。
具体技术细节如下:
我有一个类实例。
public class test
{
public string Resultobj;
public string Result
{
get
{
return Resultobj;
}
set
{
Resultobj = value;
}
}
test obj = new test();
}
我将此作为参数发送到另一个程序集中的方法。
callmethod(test obj );
因此,在所引用的程序集中,我需要设置实例的值,以便从应用程序中访问它。有人能提供如何将属性设置为作为参数传递给方法的类实例的建议吗?
这里是我尝试过的但是不正确的代码。
public override void callmethod(ref object obj)
{
Type type = Type.GetType(obj);
PropertyInfo property = type.GetProperty("Result");
property.SetValue(type , "somevalue", null);
}
由于类名称实例将在运行时传递,因此我无法提供类名称作为数据类型。我在这一行代码中遇到了错误。
callmethod(test obj );
Argument '1': cannot convert from 'test ' to 'ref object'
ref
,也不需要是object
。public void callmethod(test t) { t.Result = "somevalue"; }
- Raymond Chen