使用Automapper导致异常的对象到对象的映射

时间:2016-09-16 05:18:10

标签: c# wpf automapper

我正在尝试将viewModel类映射到Model。

这是ViewModel

...
public class LicenseInfoViewModel
{
   public SystemInfo SystemInfo { get; set; }
}
...

这是我的模特

...
public class LicenseInfoModel
{
   public SystemInfo SystemInfo { get; set; }
}
...

enter image description here 这是我在映射类时获得的异常,如

SystemInfo

是公共代码中的一个类(单独的项目)

这是我得到的例外 enter image description here

2 个答案:

答案 0 :(得分:1)

使用AutoMapper加载单独的程序集Proofix.Utility时出现问题。

如果已标记,则应查看引用的程序集 来自 Proofix.Utility,并使用CopyLocal="True"

标记它们

我想,在带有CopyLocal="true"的引用中标记此程序集将解决问题。

CopyLocal="True"实际上意味着在构建期间*.dll引用程序集的文件将存储在启动项目的bin目录中。

如果无效,请检查配置管理器(Build / Configuration Manager ...)是否选中了Build项目的复选框Proofix.Utility

如果不起作用 - 尝试在Visual Studio中清理/重建解决方案或重新打开解决方案。

答案 1 :(得分:0)

如果您认为它们是映射代码中的问题,请尝试使用此代码进行映射

   public static P MapObject<T, P>(T from, P to)
        {
            var p = Activator.CreateInstance(typeof (P));
            foreach (PropertyInfo propertyInfo in typeof(T).GetProperties())
            {
                typeof(P)
                    .GetProperty( propertyInfo.Name,
                        BindingFlags.IgnoreCase |
                        BindingFlags.Instance |
                        BindingFlags.Public)
                    .SetValue(to,
                        propertyInfo.GetValue(from));
            }
            return to;
        }