Что альтернативы к универсальным наборам для COM Interop?

Вы можете использовать document.querySelector. Используйте document.querySelectorAll, чтобы выбрать все select#selectSubject

console.log( document.querySelector( 'select[id=selectSubject]' ) );
console.log( document.querySelectorAll( 'select[id=selectSubject]' ) );
<div id="selectSubject"></div>

<select id="selectSubject" class="select"></select>
<select id="selectSubject"></select>

10
задан Community 23 May 2017 в 12:06
поделиться

2 ответа

Еще после некоторого исследования и эмпирический, я думаю, что нашел решение при помощи System.Collections.ArrayList. Однако это не работает с получением значения индексом. Для этого я создал новый класс ComArrayList это наследовалось ArrayList и добавляет новые методы GetByIndex и SetByIndex.

COM Interop совместимый набор:

public class ComArrayList : System.Collections.ArrayList {
    public virtual object GetByIndex(int index) {
        return base[index];
    }

    public virtual void SetByIndex(int index, object value) {
        base[index] = value;
    }
}

Обновленный компонент.NET MyLibrary. GetDepartments:

public ComArrayList GetDepartments() {
    // return a list of Departments from the database
}

Обновленный ASP:

<h1>The third department</h1>
<%= departments.GetByIndex(2).Name %>
11
ответ дан 3 December 2019 в 21:24
поделиться

Поскольку вы используете только данные в ASP, я бы посоветовал вернуть Department [] . Это должно отображаться непосредственно в SAFEARRAY в COM. Он также поддерживает перечисление и индексированный доступ.

public Department[] GetDepartments() {
    var departments = new List<Department>();
    // populate list from database
    return departments.ToArray();
}
5
ответ дан 3 December 2019 в 21:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: