Создание и привязка динамического связывания прокси из сложного источника данных с помощью Automapper, Linfu, Clay или ImpromptuInterface

Мне нужно создать класс Immutable Complex Dynamic Proxy из анонимного типа, json или Dictionary

Учитывая, что у меня есть

public interface ICommand
{
    Guid AggregateId { get; }
}

public interface IChangeDetails : ICommand
{
    Name Name { get; }
    Phone[] Phones { get; }
}

public class Name
{
    public string First { get; }
}

public class Phone {
    public string Number { get; }
}

И источник любого из следующих

var annonSource = new{
    AggregateId = "6420B195-0F0B-4E88-AAEF-C7CDAF91A784",
    Name = new { First = "John" },
    Phones = new []{
        new { Number = "555-123456" }
    }
};

var dictSource = new Dictionary<string, object>{
    {"AggregateId", "6420B195-0F0B-4E88-AAEF-C7CDAF91A784"}
    {"Name.First","John"},
    {"Phones[0].Number", "555-123456"}
 }

 var jsonSource = "{" +
    "'AggregateId': '6420B195-0F0B-4E88-AAEF-C7CDAF91A784'," +
    "'Name': {" +
         "'First': 'John'" +
    "}," +
    "'Phones': [" +
        "{'Number': '555-123456'}" +
    "]" +
 "}"

Есть ли способ динамически создавать и связывать IChangeDetails?

Я исследовал Linfu, ClaySharp, ImprpomtuInterface и AutoMapper

Я не мог видеть, как связать сложные дочерние свойства с любым. Хотя AutoMapper показался наиболее перспективным и понятным, но, похоже, не поддерживает неизменяемых интерфейсов. Хотя я считаю, что он использует Linfu под одеялом, я чувствую, что это тоже возможно.

0 ответов

Другие вопросы по тегам