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
看起来propertyName字段区分大小写,并且必须与属性的名称匹配:
[ParseFieldName("Seed")]
public int Seed {
get { return GetProperty<int>("Seed"); }
set { SetProperty<int>(value, "Seed"); }
}
// Seed is capitalized in all occurrences above