2011-05-06 6 views
1

자식 클래스의 특정 속성에 JavaScriptSerializer를 사용하는 방법을내가 클래스 A. 상속 클래스 B가

Class B:A 
{ 
    public string Prop1{get;set} 
    public string Prop2{get;set} 
    public string Prop3{get;set} 
} 

내가 직렬화하고 싶습니다 (JSON) 클래스 B의 특정 속성이 말하는 prop1 및 prop2 및 클래스 A에 아무 것도 없습니다. JavaScriptSerializer를 사용하고 있는데 A와 B를 직렬화합니다. 재귀 한계를 1로 설정하려고했지만 오류가 발생합니다. 나는 클래스는

답변

5

내가이 경우에 DTO 클래스를 정의하는 것입니다 도와주세요 편집 할 수 없습니다 오전 :

public class Foo 
{ 
    public string Prop1 { get; set; } 
    public string Prop2 { get; set; } 
} 

다음 FooB 인스턴스에서 매핑 AutoMapper를 사용합니다. 마지막으로 JSON은 에 의해 반환 된 Foo 인스턴스를 일련 번호로 지정합니다. 이런 식으로 직렬화되는 것을 완벽하게 제어 할 수 있습니다.

또 다른 가능성은 익명의 개체를 사용하는 것입니다

B b = ... 
string json = new JavaScriptSerializer().Serialize(new 
{ 
    b.Prop1, b.Prop2 
}); 

를하거나 결과 JSON에서 해당 속성의 이름을 변경하려는 경우 :

string json = new JavaScriptSerializer().Serialize(new 
{ 
    Foo = b.Prop1, 
    Bar = b.Prop2 
}); 
+0

한 익명 객체를. 가장 쉬운 접근 방법처럼 보입니다. – spender

+0

와우는 간단하고 똑똑한 +1입니다. – David