使用c#中的Reflection修改对象

时间:2016-01-08 14:38:30

标签: c# object reflection propertyinfo

我创建一个函数会读取来自某个值的对象检查的所有属性并修改它,我想返回一个带有修改结果的最终对象。

 public object SystemSettings 
    { 
        set 
        {
            propertyGridEditor.SelectedObject = GetFullPropertyPaths(value); 
        } 
    }

 private static object GetFullPropertyPaths(object finalResult)
    {
        foreach (PropertyInfo propertyInfo in finalResult.GetType().GetProperties())
        {
            if (propertyInfo.PropertyType == typeof(string))
            {
               object propertyValue = propertyInfo.GetValue(finalResult);
               if (propertyValue.ToString().StartsWith("\\"))
                {
                    string result = Sys.Config.ConfigurationRootFolder + propertyValue.ToString();
                    propertyInfo.SetValue(finalResult, result);
                }
            }
        }
        return finalResult;
    }

我知道我需要使用某种对象的深层副本,我想确保我在正确的轨道上或者如果我遗漏了某些东西。 感谢

0 个答案:

没有答案