Первая проверка: как вы получаете эти поля коллекции? Вы делаете что-то вроде IField где-нибудь по пути? Это даст нулевое значение, если оно не реализует IField.
Если это не так, это будет действительно странный сценарий. Единственное, что приходит на ум, было что-то действительно ужасное, что я видел в каком-то ясном коде в приложении, разработанном другим провайдером:
void Clear()
{
//some normal code to clear info on some controls
myTextBox = null;
anotherTextBox = null;
}
Хотя в этом нет никакого смысла, на самом деле это вызывает проблемы с asp.net. В некоторых конкретных сценариях обратной передачи asp.net не выполнялся с исключением nullreference во время части некоторых внутренних частей своего жизненного цикла.
Итак, также проверьте, есть ли какие-то странные процедуры, присваивающие значение null элементам управления, объявленным на странице.