2012-04-24 3 views
0

Я новичок с Моли поэтому простите простой вопрос, но в соответствии с документацией, я думаю, что это должно работать:MoleNotImplementedException брошенной GetEnumerator

 MDataServiceCollection<string> dataServiceCollectionMock = new 
      MDataServiceCollection<string>(); 

     new MCollection<string>(dataServiceCollectionMock) 
     { 
      SystemCollectionsIEnumerableGetEnumerator =() => 
      { 
       return new List<string>(new string[] { "a", "b", "c" }).GetEnumerator(); 
      } 
     }; 

     string result = string.Empty; 
     foreach (string s in dataServiceCollectionMock.Instance) 
     { 
      result += s; 
     } 

Я заменяющий GetEnumerator с моей собственной реализации, так что я могу привнести значения, которые я повторяю при использовании экземпляра DataServiceCollection. Я ожидаю, что s вернет «abc». Однако я получаю следующее исключение:

Microsoft.Moles.Framework.Moles.MoleNotImplementedException: Collection`1.GetEnumerator() не был обработан.

Любая помощь очень ценится.

С уважением, Крис.

ответ

0

Разработал решение - вызов неправильного метода для родинки.

Вместо:

SystemCollectionsIEnumerableGetEnumerator =() => 
     { 
      return new List<string>(new string[] { "a", "b", "c" }).GetEnumerator(); 
     } 

Должно быть:

GetEnumerator =() => 
     { 
      return new List<string>(new string[] { "a", "b", "c" }).GetEnumerator(); 
     }