【发布时间】:2009-06-18 15:11:15
【问题描述】:
我正在使用反射通过 PropertyInfo.SetValue(); 设置属性值;有问题的属性是一个字符串,我从中获取值的对象实际上是一个 GUID。我想在此过程中从 GUID 转换为字符串 - 有没有办法定义某种隐式强制转换来实现这一点?目前我收到一个错误:
"Object of type 'System.Guid' cannot be converted to type 'System.String'."
我想我可以进行类型检查并在必要时手动转换,但如果有一种优雅的方式在幕后进行,那将是更可取的!
非常感谢。
编辑: 我真的不能只在 GUID 上调用 .ToString() 方法,因为我非常希望我的代码看起来像这样:
propertyInfoInstance.SetValue(classInstance, objectWithValue, null)
其中 objectWithValue 是一个 int/bool/string/GUID。这适用于除 GUID 之外的所有内容,因为(我认为!!)有一个可用的隐式转换。我可以事先进行类型检查,然后将 GUID 转换为字符串,但我只是得到“必须有更好的方法......”的感觉。
【问题讨论】:
标签: c# reflection properties