AutoMapper: Сопоставление коллекции Object с коллекцией строк

Мне нужна помощь со специальным сопоставлением с AutoMapper. Я хочу сопоставить коллекцию объектов с коллекцией строк.

Итак, у меня есть Tag classd

public class Tag
{
    public Guid Id { get; set; }
    public string Name {get; set; }
}

Чем в модели у меня есть IList этого класса. Теперь я хочу сопоставить имя с набором строк.

Вот как я определяю правило сопоставления:

.ForMember(dest => dest.Tags, opt => opt.ResolveUsing<TagNameResolver>())

А вот мой ValueResolver:

protected override string ResolveCore(Tag source)
{
    return source.Name;
}

Но знаете ... это не работает ;-) Так что, может быть, кто-то знаю, как это сделать правильно, и может мне помочь.

thx alot

Jan

Ооо ... ты хотел подробнее ... вот ты понял .. но я сократил;)

Модель:

public class Artocle
{
    public Guid Id { get; set; }
    public string Title {get; set; }
    public string Text { get; set; }
    public IList<Tag> Tags { get; set; }
}

И модель тегов, которую вы видите выше.

Я хочу сопоставить ее с ArticleView ... мне нужна модель тегов только для некоторого бизнес-контекста, а не для вывода.

Итак, вот она. ViewModel, который мне нужно сопоставить:

public class ArticleView
{
    public Guid Id { get; set; }
    public string Title { get; set; }
    public string Text { get; set; }
    public IList<string> Tags { get; set; } // The mapping problem :-)
}

Итак, у меня есть BootStrapper для сопоставлений. Мое отображение выглядит так:

Mapper.CreateMap<Article, ArticleView>()
.ForMember(dest => dest.Tags, opt => opt.ResolveUsing<TagNameResolver>())

И я отображаю его вручную с помощью специального метода

    public static ArticleView ConvertToArticleView(this Article article)
    {
        return Mapper.Map<Article, ArticleView>(article);
    }
15
задан Smokefoot 21 July 2011 в 20:25
поделиться