c# - 从字符串到 bool 值的奇怪映射行为

标签 c# .net azure automapper

我的项目中的某人错误地在自动映射器配置文件中写下了以下句子:

Mapper.CreateMap<Appointment, AppointmentModel>()
    .ForMember(x => x.DeclineStart, o => o.MapFrom(x => x.DeclineStart.ToString()))

其中 DeclineStart 是实体和模型类的属性。

public class Appointment
{
   public bool DeclineStart { get; set; }
}

public class AppointmentModel
{
   public bool DeclineStart { get; set; }
}

我知道在这种情况下没有必要为此属性创建任何映射规则。

令我惊讶的是,这个映射(从StringBoolean)正在工作。

但是当我们在 Azure 云服务上发布我们的应用程序时,这段代码会抛出 AutoMapperMappingException ,这表明:

Missing type map configuration or unsupported mapping.
Mapping types:String -> Boolean (System.String -> System.Boolean)
Destination path: AppointmentModel.DeclineStartBackfill.DeclineStartBackfill
Source value:False

为什么相同的代码可以在本地运行,但不能在 Azure 上运行?

提前致谢!

<小时/>

Azure 计算机配置:Windows Server 2012 R2/.NET Framework 4.5.1

本地计算机配置:Windows 7/.NET Framework 4.5.2

自动映射器版本:3.1.0

最佳答案

是否已部署所有 AutoMapper 程序集(包括 AutoMapper.Net4.dll 程序集)?该附加程序集具有 .NET 4 中可用的扩展,这些扩展在其他地方不可用,包括类型转换器。

您有两个选择:手动引用 .NET4.dll 程序集中的某些内容:

public static class LinkerHelper {
    public static object BecauseAzureDeploymentsAreDumb() {
        var foo = typeof(HashSetMapper);
        return foo;
    }
}

或者升级到 AutoMapper 的最新测试版,我在其中组合了特定于平台的程序集。

关于c# - 从字符串到 bool 值的奇怪映射行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30002437/

相关文章:

python - 将 Nao 机器人与 Azure 连接

c# - 数据库; "Cannot add a PRIMARY KEY column"-异常

.net - .NET 中的文件扩展名和 MIME 类型

c# - 将 32 位位图转换为 8 位(彩色和灰度)

c# - 将 Task<T> 用于非实时任务

Azure 数据工厂错误 - 字符串或二进制数据将被截断

c# - 如何使用 LINQ-to-Entities 将数据插入到特定表中?

c# - Visual Studio 专用访问器和 checkin 代码

c# - 如何正确关闭在线程中打开的 TcpClient

java - Spring jms ListenerContainer 与 AMQP 使用 Qpid 客户端在连接到 Azure 服务总线分区主题时抛出异常