目前,我有一个'字段'里面有很多属性。我使用反射性地得到了所需的财产:
public object this[string propertyName]
{
get
{
Type myType = typeof(Fields);
PropertyInfo myPropInfo = myType.GetProperty(propertyName);
return myPropInfo.GetValue(this, null);
}
set
{
Type myType = typeof(Fields);
PropertyInfo myPropInfo = myType.GetProperty(propertyName);
myPropInfo.SetValue(this, value, null);
}
}
当需要简单类型时,哪个函数运行良好,例如string:
public void UpdateData(string location, string data){
Fields dataUpdate = new Fields();
dataUpdate[location] = data;
ComHandler.SendDataUpdate(dataUpdate);
}
我需要知道如何获取此类型的数据更新[位置]'对于不是字符串的实例。我尝试过使用
typeof(dataUpdate[location])
if(dataUpdate[location] is CustomField)
//do work
else
//is a string
但无法找到任何资源来实现这一目标。
编辑回答
我最终使用try catch语句来确定项目的基本类型,如果它可以转换为CustomField,或者它只是一个字符串。