我之所以问这是因为我被@Greg D(从这个问题 )推荐使用SetCurrentValue()来代替,但看看文档,并没有看到有什么区别。 或者“不改变其价值来源”是什么意思? SetValue() 设置依赖项属性标识符指定的依赖项属性的本地值。 SetCurrentValue() 设置依赖项属性的值,而不更改其值的来源。
我想通过Reflection来设置一个对象的属性,其值为stringtypes。 所以,举个例子,假设我有一个Ship类, Latitude属性是double 。 这是我想要做的: Ship ship = new Ship(); string value = "5.5"; PropertyInfo propertyInfo = ship.GetType().GetProperty("Latitude"); propertyInfo.SetValue(ship, value, null); 就这样,这将抛出一个ArgumentException : “System.String”types的对象不能转换为“System.Double”types。 如何根据propertyInfo将值转换为正确的types?