Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 提供的自动映射值类型错误_C#_Type Conversion_Automapper - Fatal编程技术网

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('),');
}