相关疑难解决方法(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
查看次数

使用com-interop将数组从vba传递给c#

使用com-interop将用户定义的类数组从vba传递到.net(特别是c#)的正确方法是什么?

这是我的c#代码.如果我从vba调用Method1,它会因"期望的数组或用户定义类型"或"函数使用visual basic中不支持的自动化类型"而失败.

public class MyClass 
{
    public Method1(UserDefinedClass[] Parameters) { ... }
    public Method2(Object Parameters) { ... }
}
Run Code Online (Sandbox Code Playgroud)

我已经阅读了一些关于MarshallAsAttribute类的内容.这可能是c#代码中缺少的部分吗?

这是我正在使用的vba代码:

Dim udt As New UserDefinedClass
Dim myArray()
myArray(1) = udt
myClass.Method1(myArray)
myClass.Method2(myArray)
Run Code Online (Sandbox Code Playgroud)

c# vba com-interop

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

标签 统计

com-interop ×2

.net ×1

asp-classic ×1

c# ×1

collections ×1

generics ×1

vba ×1