명시 적으로 각 할당 가능한 속성을 하나씩 할당 할 필요없이 기본 클래스의 변수에서 파생 클래스의 기본 부분을 할당하는 방법을 찾고 있습니다. 다른 방법을 두십시오 : 기본 클래스의 변수부터 시작하여, 할당 가능한 모든 기본 속성 집합이있는 파생 클래스의 변수로 끝내고 싶습니다. 코드를 편집하지 않고 코드를 편집해야합니다. 변화.파생 클래스의 기본 부분에 할당
편집하려는 엔터티의 기본 클래스에서 파생 클래스로 뷰 모델을 만듭니다. 일반적으로 탐색 속성에 대한 ID를 추가하여 POST에서 반환 할 수 있습니다. 예를 들면 : 나는 기본 클래스 Thing
에 속성을 추가하고 나는 ThingEditView
를 초기화 할 경우 모든 장소를 편집하는 것을 잊지 때 문제로 실행
var foo = new ThingEditView
{
UsefulID = thisThing.Useful.ID,
A = thisThing.A,
B = thisThing.B,
/* and potentially many more properties from the base class Thing */
};
return View(foo);
그러나 :
public class ThingEditView : Thing
{
public int UsefulID { get; set; }
}
은 다음과 같이 사용됩니다 또는 ThingDetailView
는 등 내가
var foo = new ThingEditView
{
base = thisThing,
UsefulID = thisThing.Useful.ID
};
을 말하고 할당 필드하는 컴파일러 그림을 수 있도록 할 수 싶어요. 이것을 할 수있는 방법이 있습니까?
통찰력을 가져 주셔서 감사합니다!
[AutoMapper] (http://automapper.org/)가 도움이 될 수 있습니다. –
동의, Automapper 같은 유일한 방법입니다 – swannee
감사 앙드레 (bedanke mich)와 에릭. AutoMapper는 내가 원했던 것보다 조금 더 무거워 보였습니다. 이상하게도 C#에서는 이것을 직접 말할 수있는 방법이 없습니다. C 일 동안 나는'memcpy (... sizeof (Thing)) '에 도달 할 것입니다. –