Создание и привязка динамического связывания прокси из сложного источника данных с помощью 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 под одеялом, я чувствую, что это тоже возможно.