我有一个类,用于枚举来自我的数据库的列表。 数据库中的所有表都有它们自己的类和属性,并且它们都派生自DatabaseTableRow。
public class DatabaseLinkRowsEnumerator<T> : IEnumerator<T>, IEnumerable<T> where T : DatabaseTableRow
我有一个User类,它派生自Page,而Page又派生自DatabaseTableRow。我还有一个属性,返回一个DatabaseLinkRowsEnumerator,即用户列表。
我还有一个UI函数,可以在水平列表中显示任何页面的列表,包括图像、名称和链接。
protected string GetVerticalListModuleHtml(IEnumerable<Page> pages)
我现在想做的就是将我拥有的DatabaseLinkRowsEnumerator的值传递给这个函数。User从Page派生而来,DatabaseLinkRowsEnumerator是一个IEnumerator。即使我尝试强制转换,我仍然会收到以下错误信息:
Unable to cast object of type 'Database.DatabaseLinkRowsEnumerator`1[Database.User]' to type 'System.Collections.Generic.IEnumerable`1[Database.Page]'.
我正在使用ASP.NET 2.0。有没有什么方法可以在不制作每个完整副本的情况下进行强制转换/转换?