В настоящее время я работаю над проектом, который создает словарь с индексом int экземпляра и сложным типом в качестве значения. Поскольку это огромный школьный проект, я не хочу размещать тонну кода, поскольку у меня есть логическая проблема, а не «мне нужен код». Я постараюсь быть настолько ясным, насколько смогу, и если есть что-то, что мне нужно объяснить, пожалуйста, дайте мне знать.Instancing со словарем
Во-первых. У меня есть словарь на моем сервере:
private Dictionary<int,List<complexType>> dictName = new Dictionary<int,List<complexType>>
Каждый раз, когда клиент запускается он регистрируется в словаре (я создать пустой сложный тип, чтобы создать его экземпляр, то я загрузить словарь):
List<complexType> temp = null;
dictName.Add(id,temp)
Тогда, когда придет время, что я хочу, чтобы добавить в список для конкретного экземпляра, что я делаю это:
complexType myItem = new complexType();
dictName[id].Add(myItem);
когда я запускаю этот код, я получаю сообщение об ошибке, когда второй клиент пытается запустить:
«Необработанное исключение типа '' System.Reflection.TargetInvocationException произошло в mscorlib.dll. Дополнительная информация: Исключение было выбрано мишенью вызова.
Теперь это происходит, когда ударяет второй пользователь: dictName.Add(id,temp)
из первой части.
Если я изменить экземпляр температуры на List<complexType> temp = new List<complexType>();
затем он проходит это место, но я получаю ту же ошибку снова, когда он обновляет клиент.
В настоящее время я использую этот способ передачи данных с помощью int и string (dictionary) , и они отлично работают, но когда я добавил в список сложного типа в словаре, я получил вышеуказанную ошибку.
Если у кого-то есть предложения, я был бы очень признателен. Я надеюсь, что это связано с моей начальной загрузкой пустого списка. Если есть что-то еще, что вам нужно знать, пожалуйста, спросите спасибо!
Что это исключение? Исправленное исключение * должно иметь свойство InnerException. Вы можете сказать нам, что это такое? – spender
@spender Я посмотрел, и похоже, что у него нет ... когда я отлаживаю его, просто случайно выдает оператор break с исключением, которое я показал выше. Затем он открывает вкладку, в которой не указывается источник. Я также попытался вставить попытку catch, чтобы получить информацию, но он не входит в catch – user1219627
Вы пытаетесь получить к нему доступ из разных потоков? –