Я использую ValueInjecter для сопоставления классов домена с моими моделями представления.Мои классы домена сложны.Чтобы позаимствовать пример из этого вопроса :
public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public Address Address { get; set; }
}
public class Address
{
public int Id { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
}
// VIEW MODEL
public class PersonViewModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int PersonId { get; set; }
public int AddressId { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
}
Я рассмотрел FlatLoopInjection, но он ожидает, что классы модели представления будут иметь префикс с типом модели вложенного домена, например так:
public class PersonViewModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Id { get; set; }
public int AddressId { get; set; }
public string AddressCity { get; set; }
public string AddressState { get; set; }
public string AddressZip { get; set; }
}
ОП в связанном вопросе изменил свои модели представления в соответствии с соглашением, ожидаемым FlatLoopInjection.Я не хочу этого делать.Как я могу сопоставить мою модель домена с исходной моделью без префикса представления?Я подозреваю, что мне нужно переопределить FlatLoopInjection, чтобы удалить префикс, но я не уверен, где это сделать.Я посмотрел на источник FlatLoopInjection, но не уверен, нужно ли мне изменить метод Match или метод SetValue.