XSD를 다른 유형의 XSD로 구문 분석하기 위해 재귀 적으로 인스턴스화하는 클래스를 프로그래밍했습니다. 인터넷에서 다운로드 한 후 각 요소를 살펴본 후 요소 중 하나에 이있는 complexType
이 있으면 그 자체의 인스턴스 중 하나를 만들어 동일한 작업을 수행합니다.정적 메서드를 사용하여 Stackoverflow 예외 방지
그러나 XSD가 크고 외부 링크가 많은 경우 오늘 Stackoverflow
예외로 인해 클래스가 다운되었습니다.
일부 인스턴스 메서드를 정적 멤버로 다른 클래스 (Helper.cs
)에 넣기로하고 이제는 파서 클래스 내에서 인스턴스 메서드를 호출하기로 결정했습니다.
그러나 이것이 좋은 해결책이고 Stackoverflow
예외를 해결할 수 있는지 궁금합니다. 어떻게 인스턴스 메서드를 스택 프레임에 넣을 지 알지만 정적 메서드는 같은 방식으로 처리됩니까? Stackoverflow
예외가 발생합니까?
그래서 문제를 해결하려면 어떻게해야합니까? –
지금은 나빠요! – Tarik
+1. 신뢰할 수없는 입력을 구문 분석하는 재귀 코드는 보안 문제입니다. 할 일이별로 없지만 재귀를 피하기 위해 리팩터링하거나 지나치게 중첩 된 구조에 실패하는 일종의 "재귀 방지"카운터가 있습니다. –