2012-12-12 3 views
1

이다다형성 : I이 같은 제어 방식이있을 때 파생 된 클래스가 직렬화

public IQueryable<ClassBase> Get() 
    {   
    } 

및 I는 ClassBase의 된 IQueryable 파생 클래스 반환 시리얼 파생 클래스가 직렬화 파생 된 클래스는 전송 (그냥 JSON 테스트) 이것은 내가 원하는/기대하지 않습니다.

기본 클래스의 출력을 얻는 방법이 있습니까?

+0

OData에 ASP.NET 웹 API를 사용하고 있습니까? 나는 당신이'IQueryable'을 반환하기 때문에 그렇게 생각합니다. –

+0

저는 현재 아니지만 장래에 지원할 것입니다. – RolandG

답변

2

serializer는 전달 된 개체를 serialize합니다. 파생 클래스를 조정하여 직렬화 방법에 대한 지침을 제공 할 수 있지만 그렇게하고 싶지는 않을 것입니다.

이것이 MVVM 디자인 패턴이 존재하는 이유입니다. 실제로 수행해야하는 작업은 실제로 원하는 필드가있는 View Model 개체로 비즈니스 개체를 투영하는 것입니다. 다음과 같은 것 :

public IQueryable<ClassViewModel> Get() 
{ 
    return CollectionOfClassDerivedObjects.Select(x => new ClassViewModel(x)) 
} 
관련 문제