У меня проблема с тем, что к коллекции объектов обращаются неправильно при запуске в потоке из службы. Я могу нормально запустить свои модульные тесты в VS2008, но когда я присоединяю отладчик к сервису, я ясно вижу, что он начинается не с индекса на основе 1, а с индекса на основе 0. Я перепробовал все, что мог придумать, чтобы изолировать это, и единственное отличие состоит в том, что он находится в службе и не работает, например, как приложение командной строки.
Когда я отлаживаю функцию, я также получаю сообщение «сбой оценки свойства», чего не происходит, когда я запускаю ее в модульном тесте.
Пожалуйста, сообщите.
[EDIT]
Я знаю, что массивы обычно начинаются с 0. Я всегда предполагал это, но сегодня я обнаружил эту ошибку и определил, что, хотя я думал, что она началась с 0, отладчик показывает, что она начинается с 1. Когда я итерация через коллекцию он получает правильное значение в VS, но не в сервисе.
[РЕДАКТИРОВАТЬ]
Я использую Microsoft.VisualBasic.Collection, потому что я могу поставить против нее ключ. Можно также использовать объект словаря, но теперь он настроен таким образом, и именно так мои классы BLL Base и другие многочисленные функции читают его, поэтому изменять его не желательно.
[РЕШЕНИЕ]
Я произвел рефакторинг своего кода, используя dicitonary и Generic.KeyValuePair (Of String, Object), чтобы мне не пришлось переписывать код, который обращается к ключам. Теперь должно работать нормально, так как он не обрабатывает коллекции так же, как объект Collecitons.