Asp.net 在VB.net中扩展SyndicationItem

Asp.net 在VB.net中扩展SyndicationItem,asp.net,vb.net,inheritance,syndicationfeed,Asp.net,Vb.net,Inheritance,Syndicationfeed,关于继承的问题,我需要你的帮助。 在我的一个项目中,我使用SyndicationFeed.net类的一个函数来读取几个feed,并对其元素进行ul分析。 对于每个元素,我也想显示提要的图像,所以我想将提要的相同ImageUrl属性分配给单个项。 因此,我首先创建了一个派生类: Public Class SyndicationItemWImage Inherits SyndicationItem Private mItemImage As Uri Public Property ItemI

关于继承的问题,我需要你的帮助。 在我的一个项目中,我使用SyndicationFeed.net类的一个函数来读取几个feed,并对其元素进行ul分析。 对于每个元素,我也想显示提要的图像,所以我想将提要的相同ImageUrl属性分配给单个项。 因此,我首先创建了一个派生类:

Public Class SyndicationItemWImage
 Inherits SyndicationItem
 Private mItemImage As Uri

 Public Property ItemImage As Uri
  Get
   Return mItemImage
  End Get
  Set(value As Uri)
   mItemImage = value
  End Set
  End Property
End Class
然后我将初始化对象并填充它

Dim BlogsPostsWImage As List(Of SyndicationItemWImage)
BlogsPostsWImage = New List(Of SyndicationItemWImage)
…
[initialize SyndFeed]
…
BlogsPostsWImage.AddRange(SyndFeed.Items.ToList.GetRange(0, 10))
其中,SyndicationFeed是一个运行良好的SyndicationFeed对象。 不幸的是,我得到一个错误,即强制转换无效:

System.InvalidCastException:无法将类型为“System.Collections.Generic.List
1[System.ServiceModel.Syndication.SyndicationItem]”的对象强制转换为类型为“System.Collections.Generic.IEnumerable
1[LucaMuricom.SyndicationItemWImage]”。在LucaMuricom.\u default.Page\u加载(对象发送方,事件参数e)

我不明白为什么:从父类到子类的角色转换不应该被允许吗? 我想我遗漏了一些基本的东西…不知道是什么


感谢您提供的任何帮助。

不幸的是,似乎没有人能够在这方面帮助我,所以我继续从另一个角度来解决这个问题:我现在有了另一种方法来实现同样的目标。我在这里回答我自己的问题来记录它

从与上面相同的SynFeed开始,我填写了一个临时列表,然后添加了ElementExtension:

ElementExtension名为
favico
,它不包含名称空间,并且具有
//bits.wikimedia.org/favicon/wikipedia.ico
。 这样,我将数据添加为一种“自定义字段”,可以在ASPX页面上轻松读取,如下所示:

<img src='<%#CType(Container.DataItem, SyndicationItem).ElementExtensions.ReadElementExtensions(Of String)("favico", "").Item(0).ToString%>' height="16" />
'height=“16”/
我仍然无法找出我最初想法的派生类的错误,但是在
联合
类的上下文中,第二种处理问题的方法可能更好

<img src='<%#CType(Container.DataItem, SyndicationItem).ElementExtensions.ReadElementExtensions(Of String)("favico", "").Item(0).ToString%>' height="16" />