2

我已将Xbox Live Unity 资产包添加到我的项目中,但在 Unity 中出现此错误。它在 Visual Studio 中并没有奇怪地显示,但它阻止了我运行我的应用程序。

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

错误所指的行如下

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

request 是一个 UnityWWW对象。我在我的应用程序中使用了这个资产包,但我已经删除了它,因为它看起来像 XBox Live 已经包含一个预编译的 dll?

4

2 回答 2

1

所以看起来JObject是个问题。更改为JContainer解决问题而无需任何进一步的代码更改

于 2017-03-03T22:06:04.103 回答
1

该类JObject在 Json.NET 中定义为:

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

JContainer定义为:

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

当您使用 JObject 时,Unity 期望能够找到INotifyPropertyChanged它似乎无法找到的实现。

我的第一个假设是 .NET 2.0 子集中不存在该类,但我已经验证(在 Unity 5.5 中)它是可用的。您能否提供更多详细信息,让我知道您使用的是哪个版本的 Unity?

于 2017-03-13T20:25:35.940 回答