在Silverlight库中继承System.Windows.PresentationFrameworkCollection <t> </t>

时间:2012-04-10 18:41:21

标签: c# silverlight silverlight-4.0

类型System.Windows.PresentationFrameworkCollection<T>不是用于继承吗?我试图创建一个自定义<Type>AnimationsFromKeyFrames对象,但我无法为KeyFrames属性创建Collection类型,因为Visual Studio显然正在构成一些错误。

Visual Studio报告未实现以下抽象成员,即使它们不存在在任何继承的对象上:

  

'MyKeyFrameCollection'没有实现继承的抽象成员'System.Windows.PresentationFrameworkCollection&lt; MyKeyFrame&gt; .SetItemImplSkipMethodPack(int,MyKeyFrame)'

     

'MyKeyFrameCollection'未实现继承的抽象成员'System.Windows.PresentationFrameworkCollection&lt; MyKeyFrame&gt; .GetItemImplSkipMethodPack(int)'

     

'MyKeyFrameCollection'没有实现继承的抽象成员'System.Windows.PresentationFrameworkCollection&lt; MyKeyFrame&gt; .RemoveInternal(MyKeyFrame)'

     

'MyKeyFrameCollection'没有实现继承的抽象成员'System.Windows.PresentationFrameworkCollection&lt; MyKeyFrame&gt; .InsertInternal(int,MyKeyFrame)'

     

'MyKeyFrameCollection'未实现继承的抽象成员'System.Windows.PresentationFrameworkCollection&lt; MyKeyFrame&gt; .IndexOfInternal(MyKeyFrame)'

     

'MyKeyFrameCollection'未实现继承的抽象成员'System.Windows.PresentationFrameworkCollection&lt; MyKeyFrame&gt; .ContainsInternal(MyKeyFrame)'

     

'MyKeyFrameCollection'未实现继承的抽象成员'System.Windows.PresentationFrameworkCollection&lt; MyKeyFrame&gt; .AddInternal(MyKeyFrame)'

如何从bizarro世界中实现这些方法,或者告诉Visual Studio停止编造抱怨并只编译项目?

我已经尝试使用以下方法明确定义这些方法(正确地说,按照之前的非存在注释)工作:

void System.Windows.PresentationFrameworkCollection<MyKeyFrame>.AddInternal(MyKeyFrame keyFrame)
void System.Collections.Generic.IList<MyKeyFrame>.AddInternal(MyKeyFrame keyFrame)
void System.Collections.Generic.ICollection<MyKeyFrame>.AddInternal(MyKeyFrame keyFrame)
void System.Collections.IList.AddInternal(MyKeyFrame keyFrame)
void System.Collections.ICollection.AddInternal(MyKeyFrame keyFrame)

结束了,并且认为MS不希望社区制作KeyFrameCollections?

编辑:我已经尝试了,我唯一的override选项是EqualsGetHashCodeToString。是否有可能这些抽象成员是protected internal,以便现有的框架类可以从它们继承,但自定义类不能?

1 个答案:

答案 0 :(得分:2)

PresentationFrameworkCollection是一个公共抽象类,但您引用的成员是internal abstract,这意味着您无法覆盖它们。