C#/Unity parse.com subclassing buggy?

本文关键字:subclassing buggy com parse Unity | 更新日期: 2023-09-27 18:27:33

这就是parse.com文档对ParseObjects:子类化的描述

[ParseClassName("Armor")]
public class Armor : ParseObject
{
  [ParseFieldName("displayName")]
  public string DisplayName
  {
    get { return GetProperty<string>(); }
    set { SetProperty<string>(value); }
  }
}

问题#1:示例错误;这两种方法都需要一个propertyName参数,所以这就是我所做的

[ParseFieldName("seed")]
public int Seed {
    get { return GetProperty<int>("seed"); }
    set { SetProperty<int>(value, "seed"); }
}

问题#2:这样做,我得到以下异常:

ArgumentNullException: Argument cannot be null.
Parameter name: key
System.Collections.Generic.Dictionary`2[System.String,System.Object].ContainsKey (System.String key) (at /Users/builduser/buildslave/mono-runtime-and-    classlibs/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:458)
Parse.ParseObject.ContainsKey (System.String key)
Parse.ParseObject.TryGetValue[Int32] (System.String key, System.Int32& result)
Parse.ParseObject.GetProperty[Int32] (Int32 defaultValue, System.String propertyName)
Parse.ParseObject.GetProperty[Int32] (System.String propertyName)
Example.get_Seed () (at Assets/Commons/Parse/Example.cs:10)

我没有解析源代码,所以我无法调试通过,但这对我来说就像一个bug(在一个非常基本的API中)。所以我想知道;我做错什么了吗?我注意到还有一个Get<T>(),不管出于什么原因,但也没有运气。

更新:我使用的是Parse.Unity 1.6.2.0

C#/Unity parse.com subclassing buggy?

看起来propertyName字段区分大小写,并且必须与属性的名称匹配:

[ParseFieldName("Seed")]
public int Seed {
   get { return GetProperty<int>("Seed"); }
   set { SetProperty<int>(value, "Seed"); }
}
// Seed is capitalized in all occurrences above