我试图在实现隐式运算符的结构上对c#进行一些反射。
我有一个班级
public class MyClass {
ObjectWrap<String> myObject;
}
我的对象包装在这里定义:
public struct ObjectWrap<T>
{
public T _value;
public ObjectWrap(T value)
{
_value = value;
}
public static implicit operator ObjectWrap<T>(T value)
{
return new ObjectWrap<T>(value);
}
}
使用此代码,我可以像那样分配
ObjectToWrap<string> d = "MyValue";
但通过反思做这件事并不奏效?
MyClass c = new MyClass();
PropertyInfo p = c.GetType().GetProperty("myObject");
p.SetValue(c, "MyValue", null);
给我异常:&#34;无法从String转换为ObjectToWrap`1 [System.String]&#34;
我该怎么办?
由于