我试图从.NET程序集返回一系列部门,以便通过COM Interop使用ASP.使用.NET我会返回一个通用集合,例如List<Department>,但似乎泛型不适用于COM Interop.那么,我的选择是什么?
我想迭代列表并能够通过索引访问项目.我应该继承List<Department>,实施IList,IList<Department>或另一个接口,或者是有没有更好的办法?理想情况下,我不希望为我需要的每种类型的列表实现自定义集合.此外,List[index]甚至可以使用COM Interop?
谢谢,迈克
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)
<%
Function PrintDepartments(departments)
Dim department
For Each department In departments
Response.Write(department.Code & ": " & department.Name & "<br />")
Next …Run Code Online (Sandbox Code Playgroud) 我们有一个用C#.Net 2.0编写的小框架,我们想要向COM公开.
问题是,我们有一些通用类,将公开如下:
interface IOurClass
{
ReadonlyCollection<IOurListObject> OurCollection
{
get;
}
}
interface IOurListObject
{
//Some properties that don't matter
}
Run Code Online (Sandbox Code Playgroud)
将通用集合暴露给COM的最佳(或推荐方法)是什么?我们不必支持泛型,我们只需要以某种方式公开IOurListObject的集合.
我们也希望避免为我们使用的每个集合编写一个新类,但它可能是不可能的.