2012-03-24 3 views
1

IKVM (7.0.4335.0)의 최신 빌드를 사용하여 최신 버전의 HtmlUnit (2.9)에서 .Net으로. 그러나 WebClient 객체를 만들려고하면 "Provider 'com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl'not found"라는 오류가 발생합니다. 내 프로젝트에서 필요한 어셈블리.IKVM이 com.sun.org.apache.xerces.internal을 com.sun.org.apache.xerces로 변경합니다. @ 내부

그런 다음이 네임 스페이스/클래스에 도달하여 com.sun.org.apache.xerces까지 올리려고했으나 그 다음에 internal을 입력하려고했을 때 유일한 옵션 인 것으로 나타났습니다. IntelliSense는 '내부'였습니다.

따라서 com.sun.org.apache.xerces. @ internal.jaxp.DocumentBuilderFactoryImpl은 있지만 com.sun.org.apache.xerces.internal.jaxp.DocuementBuilderFactoryImpl은 존재하지 않습니다. 이것은 분명히 적절한 네임 스페이스를 찾을 수 없을 때 문제가된다. 어떤 제안?

답변

1

내부적으로 이름이 직접 지정된 패키지는 사용하지 마십시오. 이것은 내부 패키지이며 향후 변경 될 수 있습니다.

@ 문자는 예약 된 키워드 인 이름에 액세스하는 C# 구문입니다. "내부"라는 단어는 C# 구문의 키워드입니다. 이것은 C# 컴파일러가 com.sun.org.apache.xerces.internal을 com.sun.org.apache.xerces.internal로 변경한다는 것을 의미합니다.

+0

나는 그것을 직접 부르지 않을 것이다. 실패한 행은 다음과 같습니다. WebClient client = new WebClient(); HtmlUnit WebClient 생성자가이 네임 스페이스/클래스를 호출합니다. 내가 얻지 못하는 이유는 저 밖에있는 대부분의 사람들에게 효과가있는 이유입니다. – light

+1

이 소리는 클래스 로더 문제와 같습니다. 자세한 내용은 http://sourceforge.net/apps/mediawiki/ikvm/index.php?title=ClassLoader를 참조하십시오. 스택 추적이 도움이 될 수 있습니다. 그러나 이것은 새로운 문제이며이 질문과 아무 관련이 없습니다. – Horcrux7

+0

그게 정확히 무엇인지, 고마워. – light