C# 提供的自动映射值类型错误
我正在尝试将类型C# 提供的自动映射值类型错误,c#,type-conversion,automapper,C#,Type Conversion,Automapper,我正在尝试将类型UserProfileEditorViewModel映射到类型UserProfile,如下所示: public ActionResult Edit(UserProfileEditorViewModel userProfileViewModel) { UserProfile user = _getUserByIdQuery.Invoke(SessionData.UserId); Mapper.Map(userProf
UserProfileEditorViewModel
映射到类型UserProfile
,如下所示:
public ActionResult Edit(UserProfileEditorViewModel userProfileViewModel)
{
UserProfile user = _getUserByIdQuery.Invoke(SessionData.UserId);
Mapper.Map(userProfileViewModel, user);
当前引发此错误的:
提供的值为System.String类型,但应为
MyNamespace.Web.Models.UserProfileEditorViewModel
在线Mapper.Map(userProfileViewModel,user)代码>
我的映射配置如下所示:
Mapper.CreateMap<UserProfileEditorViewModel, UserProfile>()
.ForMember(
dto => dto.Tags,
opt => opt.ResolveUsing<TagNameStringToTagCollectionResolver>());
protected override IEnumerable<Tag> ResolveCore(string source)
{
return _getTagsByNamesQuery.Invoke(source.Split(','));
}
你知道为什么会有这样的例外吗?我不熟悉Automapper,有点困惑。这里的问题是TagNameStringToTagCollectionResolver
需要在其ResolveCore
方法上接受类型为UserProfileEditorViewModel
的参数
显示的错误消息表示映射中的某个地方正在其方法签名中提供类型为string
的值,而它需要提供类型为UserProfileEditorViewModel
的值
考虑到措辞,这是一个有点令人困惑的例外,但这就是我解决问题的方式
protected override IEnumerable<Tag> ResolveCore(UserProfileEditorViewModel source)
{
return _getTagsByNamesQuery.Invoke(source.Tags.Split(','));
}
受保护的覆盖IEnumerable ResolveCore(UserProfileEditorViewModel源)
{
返回_getTagsByNamesQuery.Invoke(source.Tags.Split('),');
}