Автокартопостроитель, не удающийся отображаться на IEnumerable

У меня есть два класса как так:

public class SentEmailAttachment : ISentEmailAttachment
{
    public SentEmailAttachment();

    public string FileName { get; set; }
    public string ID { get; set; }
    public string SentEmailID { get; set; }
    public string StorageService { get; set; }
    public string StorageServiceFileID { get; set; }
}

И

public class SentEmailAttachmentItem : ISentEmailAttachment
{
    [ItemName]
    public string ID { get; set; }
    public string SentEmailID { get; set; }
    public string FileName { get; set; }
    public string StorageService { get; set; }
    public string StorageServiceFileID { get; set; }
}

Идентичный, как Вы видите (они оба интерфейс реализации для обеспечения этого)

У меня затем есть следующее отображение:

Mapper.CreateMap<IEnumerable<SentEmailAttachmentItem>, IEnumerable<SentEmailAttachment>>();
Mapper.CreateMap<IEnumerable<SentEmailAttachment>, IEnumerable<SentEmailAttachmentItem>>();

У меня затем есть следующий Модульный тест:

//create a load of sent email attachments
var listOfSentEmailAttachments = new List<SentEmailAttachment>();

for (int i = 0; i < 10; i++)
    listOfSentEmailAttachments.Add(new SentEmailAttachment { FileName = "testFileName", ID = Guid.NewGuid().ToString(), SentEmailID = Guid.NewGuid().ToString(), StorageService = "S3", StorageServiceFileID = "SomeFileID" });

var sentEmailAttachmentItems = Mapper.DynamicMap<IEnumerable<SentEmailAttachment>, IEnumerable<SentEmailAttachmentItem>>(listOfSentEmailAttachments);

var itemToTest = sentEmailAttachmentItems.First();

Assert.IsInstanceOfType(itemToTest, typeof(SentEmailAttachmentItem));

Это перестало работать - IEnumerable sentEmailAttachmentItems пуст. Это не отобразило список SentEmailAttachments к нему...

Какая-либо идея, что продолжается??

У меня есть он работающий над отдельными объектами (отображающий одного из каждого одному из каждого), но не набор...

48
задан Daniel Schilling 9 November 2011 в 12:38
поделиться

1 ответ

Вам не нужно явно отображать типы коллекций, только типы элементов. Просто сделайте:

Mapper.CreateMap<SentEmailAttachment, SentEmailAttachmentItem>();
var attachments = Mapper.Map<IEnumerable<SentEmailAttachment>, List<SentEmailAttachmentItem>>(someList);

Это будет работать нормально.

110
ответ дан 7 November 2019 в 12:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: