私が作成したこの小さなWebアプリケーションがあります。これには、JavaScriptを介してアンマネージコードをSilverlightアプリケーションに返すActiveXコントロールがあります。Silverlightで、戻り値に対してマーシャリング操作を実行します。GetSize()の単純な操作のみを実行すると、ばかげたエラーが発生します。これは私の質問に私をもたらします:もしそうなら、どのように銀光でマーサリング操作を実行することは可能ですか?
1539 次
1 に答える
3
Silverlight のセキュリティ モデルとサンドボックスでは、"透過的" (ユーザー コードとアプリケーション) が p/invokes、信頼された操作、またはその種のものを実行することは許可されていません。
ActiveX コントロールが既にインストールされており、Web ページで使用できる場合は、Silverlight の HTML 相互運用機能を使用してデータを自分でマーシャリングする必要があります。Silverlight 2 に固有の HTML ブリッジに関する MSDN の記事がありますが、Silverlight の新しいリリースでも同じことがわかります。
これは、ActiveX コントロールがスクリプト/JavaScript のブラウジングを通じて既にアクセス可能であることを前提としています。
数値のマーシャリングやその他のプリミティブの一部はプラットフォームでうまく機能しますが、文字列を使用して ActiveX コントロールからすべてのデータを移動し、Silverlight クライアントで解析することになる可能性があります。
これにより、少なくともシナリオが有効になる可能性があります。
于 2009-08-05T17:34:47.033 に答える