当前位置:  开发笔记 > 编程语言 > 正文

什么是COM Interop的通用集合的替代品?

如何解决《什么是COMInterop的通用集合的替代品?》经验,为你挑选了2个好方法。



1> Mike Henry..:

经过一些研究和反复试验后,我想我找到了一个解决方案System.Collections.ArrayList.但是,这不适用于通过索引获取值.要做到这一点,我创建了一个新的类ComArrayList,从继承ArrayList,并增加了新的方法GetByIndexSetByIndex.

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:

The third department

<%= departments.GetByIndex(2).Name %>



2> Christian Ha..:

由于您只是在ASP中使用数据,我建议您返回Department[].这应该直接映射到COM中的SAFEARRAY.它也支持枚举和索引访问.

public Department[] GetDepartments() {
    var departments = new List();
    // populate list from database
    return departments.ToArray();
}

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有