相关疑难解决方法(0)

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

我试图从.NET程序集返回一系列部门,以便通过COM Interop使用ASP.使用.NET我会返回一个通用集合,例如List<Department>,但似乎泛型不适用于COM Interop.那么,我的选择是什么?

我想迭代列表并能够通过索引访问项目.我应该继承List<Department>,实施IList,IList<Department>或另一个接口,或者是有没有更好的办法?理想情况下,我不希望为我需要的每种类型的列表实现自定义集合.此外,List[index]甚至可以使用COM Interop?

谢谢,迈克

示例.NET组件(C#):

public class Department {
    public string Code { get; private set; }
    public string Name { get; private set; }
    // ...
}

public class MyLibrary {
    public List<Department> GetDepartments() {
        // return a list of Departments from the database
    }
}
Run Code Online (Sandbox Code Playgroud)

示例ASP代码:

<%
Function PrintDepartments(departments)
    Dim department
    For Each department In departments
        Response.Write(department.Code & ": " & department.Name & "<br />")
    Next …
Run Code Online (Sandbox Code Playgroud)

.net generics collections com-interop asp-classic

10
推荐指数
2
解决办法
6538
查看次数

为什么ArrayList与COM Interop一起使用,但IList <T>不兼容?

我注意到,如果我创建一个公开ArrayList的.NET组件,那么该ArrayList将通过COM Interop并以脚本语言(如VBScript)提供.

泛型,如IList<T>似乎没有工作.

为什么这样,是否有任何方法可以使通用类型成功地通过COM Interop流向脚本引擎?

generics scripting com-interop

7
推荐指数
1
解决办法
2653
查看次数

如何在VBA中使用.NET类?语法帮助!

好吧,我想在VBA中使用几个.NET类.所以我必须通过COM注册它们.我想我已经找到了COM注册(最后),但现在我需要有关如何创建对象的语法的帮助.这是一些伪代码,显示了我想要做的事情.

编辑:更改附加对象以返回ArrayList而不是List

.NET类看起来像这样......

public class ResourceManagment
{
    public ResourceManagment()
    {
        // Default Constructor
    }

    public static List<RandomObject> AttachedObjects()
    {
        ArrayList list = new ArrayList();
        return list;
    }
}

public class RandomObject
{
    // 
    public RandomObject(int someParam)
    {

    }

}
Run Code Online (Sandbox Code Playgroud)

好的,这就是我想在VBA中做的事情(用C#演示),但我不知道怎么做......

public class VBAClass
{
    public void main()
    {
        ArrayList myList = ResourceManagment.AttachedObjects();
        foreach(RandomObject x in myList)
        {
            // Do something with RandomObject x like list them in a Combobox
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

需要注意的一点是RandomObject没有公共默认构造函数.所以我无法创建它的实例Dim x As New RandomObject.MSDN说你不能通过COM实例化一个没有默认构造函数的对象,但是如果它被另一个方法返回,你仍然可以使用它.Types …

.net com vba instantiation

6
推荐指数
1
解决办法
1232
查看次数