[英]Change property type using reflection
我的域类中有一个十进制值属性:
public class Domain
{
public decimal Value {get;set}
}
我需要为该 Value 属性分配两个数据库值:
obj1.Value = decimal.Parse(reader["Value"].ToString());
obj2.Value = decimal.Parse(reader["Value2"].ToString());
然后我有一个比较器方法来比较这两个属性:
public void Compare(List<object> Domains)
{
//get properties with reflection
//if the properties values are different I need to set a 'string' value [DIFFERENT] to it.
prop.SetValue(comparableObj, "[DIFFERENT]", null);
}
有可能吗?
这简直是不可能的。 属性Value
的类型在编译时设置为decimal
,并且在运行时无法更改。 相反,您需要专注于将string
值转换为decimal
值。 或者为Domain.Value
选择更合适的类型。
如果你走转换路线,那么我建议看看像Convert.ToDecimal这样的方法
我认为不可能在运行时更改属性的类型。 我确实知道,如果可能的话,那将是一个坏主意。
你最好有另一个字段来存储比较结果。然后当你需要使用“[DIFFERENT]”值时,检查你存储结果的字段,然后改用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.