我正在嘗試在C#中編寫一個組件,供經典ASP使用,該組件允許我訪問組件的索引器(又名默認屬性)。通過COM公開索引器/默認屬性
例如:
C#組件:
public class MyCollection {
public string this[string key] {
get { /* return the value associated with key */ }
}
public void Add(string key, string value) {
/* add a new element */
}
}
ASP消費者:
Dim collection
Set collection = Server.CreateObject("MyCollection ")
Call collection.Add("key", "value")
Response.Write(collection("key")) ' should print "value"
有我需要設置一個屬性,我需要實現一個接口或者我需要做別的事嗎?或者這不可能通過COM Interop?
目的是我試圖爲一些內置ASP對象(如Request)創建測試雙打,這些對象使用這些默認屬性(例如Request.QueryString("key")
)使用集合。歡迎提供其他建議。
更新:我問一個後續問題:Why is the indexer on my .NET component not always accessible from VBScript?
謝謝,這讓它工作,但不是在這[字符串鍵]。在它工作之前,我必須將DispId應用到另一個屬性。 – 2008-11-19 07:37:14