2

一部の REST API 応答からの応答を簡素化するために AutoMapper を使用しています。Messages という配列プロパティを持つオブジェクトがあり、それをクライアント アプリケーションの list<> または配列にマップしたいと考えています。

私はバリエーションを試しました:

Mapper.CreateMap<MessagesResponse, Message[]>()
                      .ForMember(dest => dest, opt => opt.MapFrom(src => src.Messages)); 
....
Mapper.CreateMap<MessagesResponse, List<SimplifiedMessage>>().ForMember(dest => dest.Add(new SimplifiedMessage()), opt => opt.MapFrom(src => src.Messages.GetEnumerator()));

...しかし、明らかにこれらのどれも機能していないようです。理想的には、SimplifiedMessage のリストで終わりたいと思っています。Messages[] を反復処理するための正しい構文が欠落していると確信しています。

public class MessagesResponse
{
    [JsonProperty("meta")]
    public Meta Meta { get; set; }

    [JsonProperty("references")]
    public Reference[] References { get; set; }

    [JsonProperty("messages")]
    public Message[] Messages { get; set; }

    [JsonProperty("threaded_extended")]
    public ThreadedExtended ThreadedExtended { get; set; }
}

public class Message
{
    [JsonProperty("content_excerpt")]
    public string ContentExcerpt { get; set; }

    [JsonProperty("chat_client_sequence")]
    public object ChatClientSequence { get; set; }

    [JsonProperty("replied_to_id")]
    public int? RepliedToId { get; set; }

    [JsonProperty("client_url")]
    public string ClientUrl { get; set; }

    [JsonProperty("language")]
    public string Language { get; set; }

    [JsonProperty("sender_type")]
    public string SenderType { get; set; }

    [JsonProperty("attachments")]
    public Attachment[] Attachments { get; set; }

    [JsonProperty("direct_message")]
    public bool DirectMessage { get; set; }

    [JsonProperty("privacy")]
    public string Privacy { get; set; }

    [JsonProperty("body")]
    public Body2 Body { get; set; }

    [JsonProperty("sender_id")]
    public int SenderId { get; set; }

    [JsonProperty("url")]
    public string Url { get; set; }

    [JsonProperty("thread_id")]
    public int ThreadId { get; set; }

    [JsonProperty("id")]
    public int Id { get; set; }

    [JsonProperty("notified_user_ids")]
    public int[] NotifiedUserIds { get; set; }

    [JsonProperty("created_at")]
    public string CreatedAt { get; set; }

    [JsonProperty("message_type")]
    public string MessageType { get; set; }

    [JsonProperty("system_message")]
    public bool SystemMessage { get; set; }

    [JsonProperty("client_type")]
    public string ClientType { get; set; }

    [JsonProperty("web_url")]
    public string WebUrl { get; set; }

    [JsonProperty("group_id")]
    public int GroupId { get; set; }

    [JsonProperty("network_id")]
    public int NetworkId { get; set; }
}
4

1 に答える 1