2010-06-11 1 views
4

Flex에서 개인 속성 인 을 사용하여 객체를 직렬화하려고합니다. "describeType() 메서드는 public 멤버 만 반환하며 메서드는 호출자의 수퍼 클래스 나 호출자가 인스턴스가 아닌 다른 클래스의 private 멤버를 반환하지 않습니다."플렉스 : 클래스의 개인 속성을 어떻게 나열합니까?

인스턴스가 비공개 구성원의 이름을 알고있는 다른 방법이 있습니까?

답변

3

불행하게도, describeType() 메서드는 Flex에서 내성 검사를 수행하는 유일한 방법입니다. 사람들은 주위에 래퍼를 작성 했으므로 내성 검사를 수행하려면 as3-commons-reflection을 권하고 싶지만 클래스의 개인 속성을 나열 할 수는 없으며 클래스를 나열 할 수있는 경우에도 액세스 할 수는 없습니다.

+0

as3-commons-reflection에 대한 정보 주셔서 감사합니다. "목록에 표시 할 수있는 경우에도 액세스 할 수 없습니다." : 직렬화해야하는 각 클래스에 "save()"와 같은 메서드를 추가하는 방법에 대해 생각했습니다. 이 메소드의 코드가 포함됩니다 (as3에 include 지시문 포함). 따라서 개인 속성을 나열하는 일반 코드를 포함하고 값을 저장하는 것이 가장 좋습니다. 특성의 이름을 아는 경우 해당 값에 액세스하는 것은 문제가되지 않습니다 (save() 또한 클래스에 있기 때문에). 그러나 private 속성의 이름을 나열하는 것은 불가능 해 보입니다 : o ( – mensonge

+0

명시 적 직렬화 함수에 대해 작성하려고했지만 항상 작동하지는 않습니다. 개인 속성이있는 프레임 워크 객체를 직렬화해야하는 경우 운 :(. –