AutoMapper로 작업 한 후에이 사이트에서 ValueInjecter을 발견했습니다. 나는 그것을 시도하고 있지만 아마도 나는 아주 단순한 시나리오에 머물러있다.ValueInjecter 질문
하지만 코드 샘플을 조사하기 전에 중간 신뢰 웹 환경에서 ValueInjecter가 작동하는지 누구든지 알고 있습니까? (Godaddy처럼?)
코드에! 나는 다음과 같은 DTO에 매핑 할
public class NameComponent
{
public string First { get; set; }
public string Last { get; set; }
public string MiddleInitial { get; set; }
}
public class Person
{
public NameComponent Name { get; set; }
}
: 나는 다음과 같은 모델이 그래서
public class PersonDTO : BaseDTO
{
private string _firstName;
public string FirstName
{
get { return _firstName; }
set { NotifyPropertyChanged(() => FirstName, ref _firstName, value); }
}
private string _middleInitial;
public string MiddleInitial
{
get { return _middleInitial; }
set { NotifyPropertyChanged(() => MiddleInitial, ref _middleInitial, value); }
}
private string _lastName;
public string LastName
{
get { return _lastName; }
set { NotifyPropertyChanged(() => LastName, ref _lastName, value); }
}
}
을 내가 DTO에 모델로 매핑 할 때이 Model.Name.First 필요를 -> DTO.FirstName DTO에서 모델로 이동하려면 FirstName -> Name.First가 필요합니다. 내 이해에서 이것은 단순한 Flatten/UnFlatten이 아니기 때문에 단어 자체도 바꿔 쓰기 때문입니다. FirstName < -> Name.First. 따라서 성과 이름은 같은 종류의 규칙을 사용할 수 있지만 MiddleInitial은 어떻습니까? Model.Name.MiddleInitial -> DTO.MiddleInitial.
일부 플러그인이 있지만 그 중 누구도 내가 원하는 것을 수행하지 않는 것으로 보입니다. 다른 사람이이 시나리오를 보았습니까?
작동합니다 그래서 나는이 밖으로 시도하는 것을 기다릴 수 없어 Reflection.Emit를 사용하지 않습니다! 답장을 보내 주셔서 감사합니다. 해결책을 보면서 나를 또 다른 질문으로 안내하십시오. 필자는 Person -> PersonDTO에서 매핑하기 위해서는 이와 비슷한 것을 필요로한다는 것을 알았다. var pp = 새 Person(); pp.InjectFrom (dto); pp.InjectFrom (dto); 시작할 때 이런 종류의 물건을 등록하도록지도를 설정할 수있는 시설이 있습니까? –
NYCChris
같은 문자 'var injecter = 새로운 ValueInjecter(); injecter.Define <이용시, PersonDTO> ((사람, DTO, injecter) => { \t \t \t injecter.Inject (DTO, 사람) \t \t injecter.Inject (주입한다 (DTO, 사람); \t}); ' 나중에 사용 중입니다 ... pp.InjectFrom (dto); –
NYCChris
@NYCChris :) 아니요, automapper입니다.하지만 자신의 매퍼 클래스를 만들고 거기에 당신이 필요로하는 모든 주사 – Omu