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