我目前有一個在.Net 2.0中創建的DLL,它具有一個COM可見組件,該組件可用作IE內網頁上的ActiveX對象。將.Net ActiveX控件(DLL)中的自定義類傳遞給Javascript
該概念正常工作,調用函數,引發事件,來回傳遞變量。問題伴隨着複雜的信息類別。
例如,我有這個類:
public class ClientInfo {
public ClientInfo() { }
public ClientInfo(DataRow dr)
{
ClientName = dr["Name"].ToString();
Address = dr["Address1"].ToString();
}
public string ClientName;
public string Address;
}
這是很簡單的。然後我必須返回構建一個數組的函數時發出的上述類:
ArrayList arr = new ArrayList();
foreach (DataRow r in dsClients.Tables[0].Rows)
{
arr.Add(new ClientInfo(r));
}
return arr.ToArray();
從當這個函數被調用JavaScript中,回報是不確定的。當從另一個.Net項目(包含一個簡單的按鈕來測試這個問題)調用時,它工作正常。
看來我需要通過JavaScript(JSON?)將返回對象轉換爲更易於訪問的東西,或者可能需要在JavaScript中定義返回變量的類型。
任何幫助,將不勝感激。
編輯:當然,因爲不包括淨直到3.5,而我們的目標是2.0
看看JSON.net似乎是最好的選擇。有趣的是,2.0實際上引用了3.5框架(對於linq等)。我發現一個較舊的1.3版本,現在似乎正在工作。讓我在我的dll中包含代碼,因爲有源代碼,所以我們可以更容易地部署它。非常感謝! – elbweb 2011-02-25 21:19:31