Ich arbeite derzeit an einem Projekt, das ein Wörterbuch mit einem int-Index der Instanz und einem komplexen Typ als Wert erstellt. Da es sich um ein riesiges Schulprojekt handelt, möchte ich nicht viel Code veröffentlichen, da ich eher ein logisches Problem habe als ein "Ich brauche Code". Ich werde versuchen, so klar wie möglich zu sein, und wenn es etwas gibt, was ich besser erklären muss, lass es mich wissen.Instancing mit einem Wörterbuch
Zunächst. Ich habe ein Wörterbuch in meinem Server:
private Dictionary<int,List<complexType>> dictName = new Dictionary<int,List<complexType>>
Jedes Mal, wenn ein Kunde es startet mit dem Wörterbuch registriert (i erstellen Sie einen leeren komplexen Typen es instanziiert dann lade ich das Wörterbuch):
List<complexType> temp = null;
dictName.Add(id,temp)
dann, wenn die Zeit kommt, dass ich für eine bestimmte Instanz zu der Liste hinzufügen möchte ich dies tun:
complexType myItem = new complexType();
dictName[id].Add(myItem);
wenn ich diesen Code ausführen bekomme ich einen Fehler, wenn ein zweiter Client auszuführen versucht:
„eine nicht behandelte Ausnahme des Typs 'System.Reflection.TargetInvocationException' aufgetreten in mscorlib.dll. Weitere Informationen: Die Ausnahme wurde durch das Ziel eines Aufrufs ausgelöst.
Jetzt geschieht dies, wenn der zweite Benutzer hit: dictName.Add(id,temp)
aus dem ersten Teil.
Wenn ich die Instanziierung temp List<complexType> temp = new List<complexType>();
ändern
dann geht es, dass vor Ort, aber ich bekomme die gleichen Fehler wieder, wenn es die Kunden aktualisiert.
Ich verwende derzeit diese Art der Weitergabe von Daten mit int und String (Wörterbuch) und sie funktionieren gut, aber wenn ich in eine Liste eines komplexen Typs im Wörterbuch hinzugefügt habe, habe ich den obigen Fehler.
Wenn jemand irgendwelche Vorschläge hat, würde ich es sehr zu schätzen wissen. Ich hoffe, dass es etwas mit meiner anfänglichen Ladung einer leeren Liste zu tun hat. Wenn Sie noch etwas wissen müssen, fragen Sie bitte Danke!
Was ist die Ausnahme? Die gepostete Ausnahme * sollte eine InnerException-Eigenschaft haben. Kannst du uns sagen, was es ist? – spender
@spender Ich schaute und es scheint nicht zu haben ... wenn ich durch Debug es nur zufällig die Break-Anweisung mit der Ausnahme, die ich oben zeigte. Dann öffnet sich eine Registerkarte, die besagt, dass keine Quelle verfügbar ist. Ich habe auch versucht, einen Versuch zu fangen, um Informationen zu bekommen, aber es gibt nicht den Haken – user1219627
Versuchen Sie, es von verschiedenen Threads zugreifen? –