Я пытаюсь написать компонент на C # для использования классическим ASP, который позволяет мне получить доступ к индексатору компонента (так называемое свойство по умолчанию).
Например:
Компонент 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")
). Альтернативные предложения приветствуются.
Обновление: я задал дополнительный вопрос: Почему индексатор на моем компоненте .NET не всегда доступен из VBScript?