C# 在C中合并对象会引发TargetException#

C# 在C中合并对象会引发TargetException#,c#,merge,C#,Merge,我正在合并两个任意对象,如下所示: public void MergeWorkSpaceObjs<T>(T source, T target) { Type t = typeof(T); var properties = t.GetProperties().Where(prop => prop != null &&

我正在合并两个任意对象,如下所示:

public void MergeWorkSpaceObjs<T>(T source, T target)
{
    Type t = typeof(T);
    var properties = t.GetProperties().Where(prop =>
                                                prop != null &&
                                                prop.CanRead &&
                                                prop.CanWrite);
    foreach (var prop in properties)
    {
        var value = prop.GetValue(source);
        if (value != null)
        {
            prop.SetValue(target, value);
        }
    }

    var fields = t.GetFields();
    foreach (var fi in fields)
    {
        var targetField = t.GetField(fi.Name);
        targetField.SetValue(target, fi.GetValue(source));
    }
}
我不确定那个错误到底意味着什么。在谷歌搜索之后,看起来这个错误与缺少的类实例化有关,或者有一个null属性,但我不确定在哪里,我还是C#新手


该错误是什么意思?我如何解决它?

如何调用此函数?它看起来像是Irwinegarten的
source
null
@当我试图从文件中合并配置时,在保存配置时,我会调用它。这里是上下文:您确定
userConfig
不是
null
?调试并查看
Test Name:  SaveConfigs
Test FullName:  Automata.Tests.WorkSpaceTest.SaveConfigs
Test Source:    E:\Programming\C#\Automata\Automata.Tests\WorkSpaceTests.cs : line 47
Test Outcome:   Failed
Test Duration:  0:00:00.014

Result StackTrace:  at System.Reflection.RuntimeMethodInfo.CheckConsistency(Object target)
   at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index)
   at Automata.WorkSpace.MergeObjs[T](T source, T target) in E:\Programming\C#\Automata\Automata\WorkSpace.cs:line 156
   at Automata.WorkSpace.Save() in E:\Programming\C#\Automata\Automata\WorkSpace.cs:line 130
   at Automata.Tests.WorkSpaceTest.SaveConfigs() in E:\Programming\C#\Automata\Automata.Tests\WorkSpaceTests.cs:line 48
Result Message: System.Reflection.TargetException : Non-static method requires a target.