c# - 映射到具有内部构造函数的自定义类型

标签 c# .net exception-handling automapper tridion

我们正在尝试映射一个对象 - 一个 Tridion 出站电子邮件联系人 - 它具有带有内部构造函数的自定义字典类型属性 - ExtendedDetailCollection

从对象到 Viewmodel 的映射很好

Mapper.CreateMap<Contact,ContactViewModel>()
    .ForMember(x=>x.Name, m=>m.MapFrom(x=>x.ExtendedDetails["Name"].StringValue))

但是另一种方式不行

我们已经尝试过:

Mapper.CreateMap<ContactViewModel,Contact>()
    .ForMember(x=>x.ExtendedDetails["Name"].Value, m => m.MapFrom(x=>x.Name));

但这会引发运行时异常。

编辑:异常信息为:

AutoMapper.AutoMapperConfigurationException : Custom configuration for members is only supported for top-level individual members on a type.

我们还尝试了各种类型转换器和值解析器,但没有一个允许我们获取映射到的对象,这是我们需要访问以映射 ExtendedDetails 对象的对象。

Mapper.CreateMap<ContactViewModel,Contact>()
    .ForMember(x=>x.ExtendedDetails, m => ????);

有这方面的模式还是使用静态方法更容易?

最佳答案

如果 ExtendedDetails 是一个类,您需要为该类创建 Map,然后创建单独的属性,例如类的名称。

关于c# - 映射到具有内部构造函数的自定义类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9686246/

相关文章:

c# - 验证所有值

iphone - 尝试并捕获iPhone中的功能

java - 在 Spring Security 中处理自定义异常

c++ - float 的异常处理 C++

c# - 我要如何在C#中统一创建音频可视化器

c# - 母版页中的更新面板和子页中的 asp 文件上传

c# - 参数超出范围

c# - Caliburn Micro - 在单独的 DLL 中查看和查看模型

c# - 允许用户从按钮立即取消长时间运行的WPF操作

c# - 获取 WebBrowser 控件的后退/前进历史记录