我正在使用Silverlight 3存根来使用WCF服务,我需要的一个参数是System.Collections.ObjectModel.ObservableCollection
。
但是,以下代码抛出NotImplementedException
:
ItemType[] aItemTypes = ...;
ObservableCollection<ItemType> aTypes = null;
if(aItemTypes != null)
{
aTypes = new ObservableCollection<ItemType> (aItemTypes);
}
如果我使用foreach循环手动添加所有条目而不是使用带有可枚举的构造函数,它可以正常工作。有没有理由为什么构造函数丢失或者它只是被遗忘?
答案 0 :(得分:1)
是否存在构造函数丢失或仅仅是遗忘的原因?
当有人实现类型但不需要其中的所有内容时,有时会在Mono基类库源代码上发生这种情况。在这种情况下,最好为缺少的代码添加 stubs ,因为:
MissingMethodException
,NotImplementedException
更容易诊断; NotImplementedException
。在这种特殊情况下,我怀疑需要进行更多测试,以确定被复制的项目是否需要触发事件(直接添加它们)。
好消息是这种方法是在Mono的GIT master中实现的。我会考虑将其移植到 mono-2-10 分支中,以便MonoTouch将在以后的版本中获得它。