从字符串到布尔值的奇怪映射行为
Strange mapping behaviour from String to Boolean
我项目中的某个人错误地在自动映射器配置文件中写了以下句子:
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; }
}
我知道在这种情况下没有必要为此属性创建任何映射规则。
令我惊讶的是这个映射(从 String
到 Boolean
)正在工作。
但是当我们在 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
本地机器配置:Windows7 / .NET Framework 4.5.2
Automapper 版本: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 测试版,我在其中组合了特定于平台的程序集。
我项目中的某个人错误地在自动映射器配置文件中写了以下句子:
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; }
}
我知道在这种情况下没有必要为此属性创建任何映射规则。
令我惊讶的是这个映射(从 String
到 Boolean
)正在工作。
但是当我们在 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
本地机器配置:Windows7 / .NET Framework 4.5.2
Automapper 版本: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 测试版,我在其中组合了特定于平台的程序集。