2011-11-27 2 views
0

나머지 프레임 워크 내에서 사용하는 흥미로운 기술로서 복합 지향 프로그래밍 및 DCI를 참조하지만 문제가 발생했습니다. 믹스 인 객체를 직렬화하고 모두 속성을 얻을 수 있습니까? 예를 들어 : 구성된 오브젝트 직렬화

public class IHasOwner 
{ 
    string owner(); 
} 

public class HasEngine 
{ 
    string engine(); 
} 

는 이제 우리가 유지 mixin 위의 두 클래스와 CarComposite 목적을 가정 해 봅시다. 당신이 인터페이스를 역 직렬화 canot 이후는 다음 XML?

<CarComposite> 
    <owner></owner> 
    <engine></engine> 
</CarComposite> 

나는, 이것은 일반적으로 처리하는 방법에 궁금하지만, .NET에 가까운 관심과를 얻을이 CarComposite 클래스를 직렬화 수 없습니다.

+0

필자는 항상 상단 System.Xml 클래스에서 직접 serializer를 굴릴 수 있다고 생각하십니까? 그게 당신의 문제를 해결하지 못할 수도있는 이유와, C#에서 믹스 인을 합성하는 방법에 대해 자세히 설명해 주시겠습니까? –

+0

동적 프록시 또는 재 믹스를 사용하여 컴포지트를 구성 할 수 있습니다. 상속을 사용하는 대신 다양한 개체에서 내 도메인 개체를 작성할 수 있어야합니다. Qi4J로 할 수있는 것과 비슷합니다. 나는 그것이 사용자 정의 시리얼 라이저를 필요로한다고 생각한다. –

+0

OpenRasta와 같이 Rest와 함께 믹싱을 사용할 수 있는지 알고 싶습니다. 아마도 해답은 구성된 도메인 객체를 상속을 통해 생성 된 리소스에 매핑하는 것입니다. 그것은 도메인이 아니라 전달 된 리소스입니다. 그 방법은 리소스 Serializer 괜찮아요. –

답변

1

RESTful 서비스에서 뷰 또는 자원 모델이 자주 호출된다. 나는. 리소스를 노출하려는 방식에 맞춘 바보 데이터 유형 세트. 도메인 객체와 일치시킬 필요는 없습니다. 당신은 두 사람 사이의지도 수 있어야합니다. 벙어리 자원 모델은 직렬화하기가 쉽습니다.

도메인과 서비스 모델 개체 간의 매핑을 위해 AutoMapper는 매우 유용 할 수 있습니다.