日期:2014-05-20  浏览次数:20742 次

未将对象引用设置到对象的实例
IEnumerable<TimeSeriesData> myTimeSeries =
                from item in xmlDoc.Descendants("TimeSeries")
                select new TimeSeriesData()
                {
                    open = Convert.ToDouble(item.Element("Open").Value),
                    close = Convert.ToDouble(item.Element("Close").Value)
                };

编译没问题,运行时报错
用户代码未处理 System.NullReferenceException
  Message=未将对象引用设置到对象的实例。
  StackTrace:
       位于 SbsCh10_1.MainPage.<wc_OpenReadCompleted>b__1(XElement item)
       位于 System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
       位于 System.Windows.Controls.ItemCollection.EnumerableCollectionView.InitializeSnapshot()
       位于 System.Windows.Controls.ItemCollection.UpdateItemsSourceList(IEnumerable newItemsSource)
       位于 System.Windows.Controls.ItemsControl.ItemsSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
       位于 System.Windows.DependencyObject.RaisePropertyChangeNotifications(DependencyProperty dp, Object oldValue, Object newValue)
       位于 System.Windows.DependencyObject.UpdateEffectiveValue(DependencyProperty property, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, ValueOperation operation)
       位于 System.Windows.DependencyObject.SetValueInternal(DependencyProperty dp, Object value, Boolean allowReadOnlySet)
       位于 System.Windows.Controls.ItemsControl.set_ItemsSource(IEnumerable value)
       位于 SbsCh10_1.MainPage.wc_OpenReadCompleted(Object sender, OpenReadCompletedEventArgs e)
       位于 System.Net.WebClient.OnOpenReadCompleted(OpenReadCompletedEventArgs e)
       位于 System.Net.WebClient.OpenReadOperationCompleted(Object arg)
  InnerException: 
------最佳解决方案--------------------
你确认item.Element("Open").这些东西都存在,调试一下不就都清楚了吗
------其他解决方案--------------------
系统已经告诉你,是未将对象引用设置到对象的实例.
"open = Convert.ToDouble(item.Element("Open").Value),
close = Convert.ToDouble(item.Element("Close").Value)
"
你调试下,看他们为什么没有值,不就解决了么?

------其他解决方案--------------------
在这里怎么去判断item.Element("Open").Value时候有值呢?
------其他解决方案--------------------
有一个item的数据为
<TimeSeries>
  <Date />
</TimeSeries>
怎么增加判断?
------其他解决方案--------------------
解决了
增加
where item.Element("Date").Value!=""