我正在尝试在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