2009-08-05 4 views
0

나는이 작은 웹 애플리케이션을 만들었습니다. 자바 스크립트를 통해 관리되지 않는 코드를 실버 라이트 애플리케이션으로 반환하는 ActiveX 컨트롤이 있습니다. 실버 라이트에서 반환 값에 마샬링 연산을 수행합니다. GetSize()의 간단한 작업 만 수행하면 stupefing 오류가 발생합니다. 이것은 내 질문에 나를 데려옵니다 : 실버 라이트에서 marhsalling 작업을 수행 할 수 있습니까? 그렇다면 어떻게해야합니까?Silverlight의 관리되지 않는 코드 정리하기

+0

안녕하세요, stupefing 오류 또는 GetSize() 작업이 존재하는 위치에 대한 자세한 정보를 추가 할 수 있습니까? –

답변

3

Silverlight의 보안 모델과 샌드 박스는 "투명"(사용자 코드 및 응용 프로그램)이 p/invoke, 신뢰할 수있는 작업 또는 그와 유사한 작업을 수행하는 것을 허용하지 않습니다.

이미 ActiveX 컨트롤이 설치되어 있고 웹 페이지에서 사용할 수있는 경우 Silverlight의 HTML 상호 운용성 기능을 사용하여 데이터를 직접 마샬링해야합니다. Silverlight 2에만 해당하는 MSDN article about the HTML bridge이 있지만 Silverlight의 최신 릴리스에서도 마찬가지입니다.

여기서는 스크립팅/JavaScript를 통해 ActiveX 컨트롤에 액세스 할 수 있다고 가정합니다.

숫자와 일부 다른 프리미티브의 일부 정렬이 플랫폼에서 제대로 작동하지만 ActiveX 컨트롤에서 문자열 사용을 통해 모든 데이터를 이동 한 다음 Silverlight 클라이언트에서 다시 구문 분석 할 가능성이 높습니다.

최소한 시나리오를 사용할 수 있습니다.

+0

javascript를 통해 activex에서 실버 라이트로 바이트 배열을 전달하려고합니다. 자바 스크립트는 네이티브 비 관리 코드 만 지원하므로 바이트 배열을 보낼 수 없습니다. 그래서 나는 단순한 마샬링을 수행 할 것을 생각했는데 역시 실패했다. 이것을 피할 방법이 있을까? – vondip

+0

해당 바이트 배열을 인코딩 할 수 있습니다. 자바 스크립트에서 바이트 배열을 살펴보고 각각을 16 진수 문자열로 변환 할 수 있습니까? 이를 Silverlight에 전달할 수 있습니다. HTML 상호 운용성 기능은 이러한 작업을 수행하는 방법이지만 내부에서 일부 작업을 수행해야합니다. –

+0

와우, 나는 거대한 바이트 배열을 가지고있다. (나는 이미지를 인코딩하는 것과 비슷한 큰 것을 볼 수있다. – vondip

관련 문제