我必须实现的代码从网页的 Ajax 调用中获取已发布的数据列表。
我知道我需要更新的对象,但是每个字段/值对都是作为字符串值而不是作为它们的正确类型出现的。
所以我试图找出属性的类型,将值转换为新类型,然后使用反射将其应用于字段。
但是,对于字符串以外的任何内容,我都会收到以下错误。
Invalid cast from 'System.String' to 'System.TimeSpan'.
我尝试转换的代码是;
public void Update<T>(string fieldName, string fieldValue)
{
System.Reflection.PropertyInfo propertyInfo = typeof(T).GetProperty(fieldName);
Type propertyType = propertyInfo.PropertyType;
var a = Convert.ChangeType(fieldValue, propertyType);
}
目标对象也是如此。