Я получаю странное исключение NullReferenceException, которое я не могу понять, пытаясь макет коллекции для перечисления. Я не думаю, что это что-то вызвано Mock, но я не уверен на 100%. Может ли кто-нибудь определить что-то глупое, что я делаю?NullReferenceException при попытке перечислить с помощью Mock
InfoDataSet<OrderItemInfo> orders = OrderItemInfoProvider.GetOrderItems(orderInfo.OrderID);
foreach (OrderItemInfo orderItem in orders)
{
// Exception thrown on the first attempt to get an OrderItem in the foreach
}
Трассировка стека из этой строки кода заключается в следующем:
System.NullReferenceException: Ссылка на объект не указывает на экземпляр
объекта. Результат StackTrace: в
CMS.SettingsProvider.ObjectDataSet1.GetEnumerator() at
1.GetObjectEnumerator() в
CMS.SettingsProvider.ObjectDataSet
CMS.SettingsProvider.InfoDataSet`1.d__0.MoveNext()
на ...
Содержание сборника это просто оболочка вокруг IEnumerable. В моем случае это должно дать вам представление о том, что происходит. GetEnumerator (как неявные, так и неявные) реализации просто вызывает значения.
private IEnumerable<T> values;
/// <summary>
/// Initializes a new instance of the <see cref="MockDataSet{T}"/> class.
/// </summary>
/// <param name="values">The values.</param>
public MockDataSet(IEnumerable<T> values)
{
if (values == null)
throw new ArgumentNullException("values");
this.values = values;
}
значение имеет единственное значение в нем, что я могу перечислить штраф через окно часов ...
Может кто-нибудь объяснить, что я делаю неправильно здесь?
@lan почему вы не показываете какой-либо код внутри foreach. Это даст нам еще кое-что, о чем можно подумать. – Dinesh
@Dinesh: Я могу - хотя я никогда не дошел до этого кода, и это зависит от домена. Я на самом деле только что нашел проблему ... отправлю ответ. – Ian