2017-03-03 4 views
2

Ich habe die XBox Live Unity asset package zu meinem Projekt hinzugefügt, und ich bekomme diesen Fehler in Unity. Es wird nicht seltsam in Visual Studio angezeigt, aber es hält mich davon ab, meine App auszuführen.JSON.net Fehler nach dem Importieren von XBox Live-Dienste

error CS7069: Reference to type `System.ComponentModel.INotifyPropertyChanging' claims it is defined assembly `System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089', but it could not be found 

die Linie der Fehler bezieht, ist als

JObject response = JsonConvert.DeserializeObject(request.text) as JObject; 

Anfrage folgt, ist eine Einheit WWW Objekt. Ich benutzte this asset package in meiner App, aber ich habe es entfernt, wie es aussieht, wie XBox Live eine vorkompilierte DLL von diesem bereits enthält?

+0

Ah ja ... Es ist eine Hektik. Ich habe das auch irgendwann, ich glaube ich habe json.net einfach komplett entfernt und wieder importiert. Der Grund dafür ist, dass beim Importieren des Pakets "Xbox Live Unity Asset" Unity Ihren (vermutlich) benutzerdefinierten Import von json.net überschreibt. Wenn ich jemals json serialisieren müsste, würde ich die eingebaute JsonUtility verwenden anstatt die Mühe, eine externe C# -Bibliothek zu implementieren, die nicht "offiziell" von Unity unterstützt wird. Es funktioniert, aber Unity spielt nicht gut damit. – Maakep

Antwort

1

So sieht es aus wie JObject ist das Problem. Der Wechsel zu JContainer löst das Problem ohne weitere Codeänderungen

1

Die JObject Klasse in Json.NET wie folgt definiert ist:

public partial class JObject : JContainer, IDictionary<string, JToken>, INotifyPropertyChanged 

während JContainer ist definiert als:

public abstract partial class JContainer : JToken, IList<JToken> 

Wenn Sie JObject , Unity erwartet, die INotifyPropertyChanged Implementierung zu finden, die es nicht zu finden scheint.

Meine erste Annahme war, dass diese Klasse in der .NET 2.0 Subset nicht vorhanden war, aber ich habe (in Unity 5.5) verifiziert, dass es verfügbar ist. Kannst du ein bisschen mehr Details angeben und mich wissen lassen, welche Version von Unity du benutzt?

+0

Danke für die Antwort. Ich arbeite mit Unity 5.5.2, aber JObject arbeitete, bevor ich das XBox-Asset-Paket importierte. Etwas in diesem Paket muss eine andere Version einer Bibliothek aus dem JSON.net-Asset-Paket enthalten, das ich im OP verlinkt habe. –

+0

Wissen Sie, welches andere Paket Sie möglicherweise verwendet haben, das das Problem verursacht haben könnte? Ich wäre daran interessiert zu sehen, ob ich genau bestimmen kann, was das Problem verursacht hat, damit wir es dokumentieren oder umgehen können. –

+0

Soweit ich weiß, dieser https://www.assetstore.unity3d.com/en/#!/content/11347 –

Verwandte Themen