我使用反射来获取一些值,然后将其传递给对象属性。
我应该将其重构为几种方法吗?如果是这样,我应该为每次通话重构一次。类型,属性等。
//base item
var item = aItem;
//The type of the item
var type = item.GetType();
//The property -- In this example a list of strings -- can be list<int> etc.
var property = type.GetProperty("Strings");
//The type of the property
var propertyType = property.PropertyType;
//Value to be converted value is a object
var value = property.GetValue(item);
//New value changing type -- Was showing a list of list -- Was using this when i had a List<object>
//var newValue = Convert.ChangeType(value, propertyType);
//The object property
ListData = value;
答案 0 :(得分:3)
方法应该只包含执行一个任务的代码。在您给出的代码中。它通过反射从对象返回列表的内容。
在我看来,你应该放弃它。但要创建一个方法来执行此操作:
object GetListData(object item){
//your code
return value;
}