dynamic
유형의 매개 변수가있는 ASP.NET 코어 컨트롤러 메서드에서 아래와 같이 Automapper를 사용하여 매핑하고 싶습니다. 상기 방법은 다음과 같다 :Automapper를 사용하여 다중 맵을 만들지 않고 동적/JObject에서 임의의 유형으로 매핑
public IActionRsult Post([FromBody] dynamic model) {
// Skip validation
switch(model.src) {
case "employer"
var employerVM = _mapper.Map<EmployerViewModel>(model.data);
// Work with mapped object
break;
case "employee"
var employeeVM = _mapper.Map<EmployeeViewModel>(model.data);
// Work with mapped object
break;
}
}
을 EmployerViewModel
는 다음과 같다 여기서
public class EmployerViewModel {
public string CompanyName {get; set;}
public string CompanyAddress {get; set;}
}
및 EmployeeViewModel
을 다음과 같다 :
public class EmployeeViewModel {
public string FirstName {get; set;}
public string LastName {get; set;}
public bool Ready {get; set;}
}
이되는 수 클라이언트 측에서 JSON 데이터를 수신 모양 :
{
"src": "employer",
"data": {
"CompanyName": "Pioneers Ltd.",
"CompanyAddress": "126 Schumacher St., London"
}
}
,
나이 :
{
"src": "employee",
"data": {
"FirstName": "John",
"LastName": "Doe",
"Ready": true
}
}
이제 모든 관계없이 항상 JSON의 값이 무엇인지 false로 설정되지 부울 속성을 제외하고 잘 작동합니다. JSON 입력 포맷터를 사용하여 매개 변수에서 인스턴스를 생성합니다. 인스턴스의 유형을 확인한 후 Newtonsoft라는 것을 발견했습니다 .Json.Linq.JObject
bool을 올바르게 작동 시키려면 어떤 아이디어가 필요합니까?
각각에 대해 AutoMapper 맵을 명시 적으로 구성 할 필요없이 TDestination IMapper.Map<TDestination>(object source)
(here 참조)을 사용하여 임의의 수의 대상 클래스 매핑을 계속 지원하고 싶습니다. 이것이 어떻게 달성 될 수 있는지 어떤 힌트?
P. AutoMapper 6.2.1 및 ASP.NET Core 1.1.3을 사용하고 있습니다.
예를 들어 ExpandoObject와 함께 작동하므로 모델을 결합하는 방법에 대한 질문입니다. –
JSON 입력 포맷터는 동적 매개 변수 모델 – Bahaa
안에 Newtonsoft.Json.Linq.JObject 인스턴스를 포함합니다. 그러면 조사해야 할 내용입니다. AM에 관한 한, 그것은 효과적입니다. –