对象与SetValue和枚举的目标类型不匹配

时间:2013-07-24 14:47:33

标签: c# dynamic enums propertyinfo

我尝试调整this tutorial from CodeProject尝试更改dynamic,在这种情况下,这将是一个简单Enum的int。

如果我们这样定义Enum

public Enum MyEnum { Zero = 0, One = 1, Two = 2 }

设置包含MyObject的{​​{1}}类的值的方法的内容:

MyEnum

有关为何发生这种情况的任何想法?

1 个答案:

答案 0 :(得分:6)

“对象与目标类型不匹配”表示myObject不是从propertyInfo获取的类型的实例。换句话说,您尝试设置的属性是一种类型,myObject不是该类型的实例。

举例说明:

var streamPosition = typeof(Stream).GetProperty("Position");

// "Object does not match target type," because the object we tried to
// set Position on is a String, not a Stream.
streamPosition.SetValue("foo", 42);