簡體   English   中英

將自定義類從.Net ActiveX控件(DLL)傳遞給Javascript

[英]Passing a custom class from a .Net ActiveX Control (DLL) to Javascript

我目前在.Net 2.0中創建了一個DLL,該DLL具有COM可見組件,該組件用作IE中網頁上的ActiveX對象。

這個概念很好用,可以調用函數,引發事件,來回傳遞變量。 問題來自復雜的信息類別。

例如,我有這個課:

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中定義返回變量的類型。

任何幫助,將不勝感激。

編輯:當然,我不能使用序列化,因為直到.Net 3.5才包括在內,而我們的目標是2.0

Json只是文本,因此您應該能夠創建自己的json。

查看此鏈接以獲取實現http://geekswithblogs.net/Mochalogic/articles/103330.aspx

或者嘗試json.net 在此處輸入鏈接描述

將json放在客戶端瀏覽器上后,將其轉換為對象所需要做的就是調用eval。 請訪問Douglas Cockford的網站,以獲得更強大的json評估解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM