2011-11-18 7 views
2

私はここで私の髪を引っ張っています。 WebBrowserコントロールを使用して、ローカルのhtmlページ(キオスクアプリ)をホストしています。 webbrowserインスタンスのobjectforscriptingプロパティに使用するcom可視オブジェクトを作成しました。すべて正常に動作している、私はページのjavascript、プロパティとメソッドから私のcomオブジェクトを呼び出すことができます。コレクションのプロパティを除きます。ここに私のコードです。私は、リストプロパティへのアクセスを得ることができないしかしウェブブラウザコントロールを介してオブジェクトのオブジェクトのコレクションプロパティにアクセスする

[PermissionSet(SecurityAction.Demand, Name = "FullTrust")] 
    [System.Runtime.InteropServices.ComVisibleAttribute(true)] 
    public class TestObjectModel 
    { 
     public string sProp = "testprop"; 

     public List<string> sList = new List<string>(); 

     public TestObjectModel() 
     { 
      sList.Add("test"); 
     } 
    } 

何ら問題は、以下に働かないのsprop私はアクセスすることができます。..

<button onclick="alert(window.external.sProp)">test 1</button> 

<button onclick="alert(window.external.sList[0])">test 2</button> 

私はハッシュテーブル、辞書に変換しさえするIListから継承自分のクラスを作成し、そのクラスのComVisibleをマーキングしようとしました。どんなに私は何をすべきか、私はいつも

window.external.sList.0がnullの場合、エラーまたは

の助けをいただければ幸いではないオブジェクトや私が間違っているのものになどの方向を取得していません。

ありがとうございます!

答えて

0

Microsoft Scripting Runtimeへの参照を追加し、リストプロパティにScripting.Dictionaryを使用しますか?

2

同じ問題が発生し、スクリプト辞書を使用しました。 Here's a website that explains how to work with the scripting dictionary

私は基本的にオブジェクトをスクリプト辞書に入れてそこから呼び出す別の関数を作成します。

呼び出す場合は、リストcomのオブジェクトを表示するようにしてください。

関連する問題