2
我似乎无法在查询它并接收结果后访问自定义对象数组(即分析表中的列)。Unity3D:如何访问来自ParseObject子类的列表<T>元素
我有一个简单的自定义类调用“TextEntry”包含2个字符串。
public class TextEntry
{
public string key;
public string text;
public TextEntry() { }
}
我有一个名为“LocalePO”的ParseObject子类,除了其他本机类型,还有一个IList成员。
[ParseClassName("LocalePO")]
public class LocalePO : ParseObject
{
[ParseFieldName("version")]
public int version
{
get { return GetProperty<int>("version"); }
set { SetProperty<int>(value, "version"); }
}
[ParseFieldName("code")]
public string code
{
get { return GetProperty<string>("code"); }
set { SetProperty<string>(value, "code"); }
}
[ParseFieldName("name")]
public string name
{
get { return GetProperty<string>("name"); }
set { SetProperty<string>(value, "name"); }
}
[ParseFieldName("keypair")]
public IList<object> keypair
{
get { return GetProperty<IList<object>>("keypair"); }
set { SetProperty<IList<object>>(value, "keypair"); }
}
public LocalePO() { }
}
我可以查询解析,并成功返回LocalePO对象,但我不能访问“密钥对”清单的具体“文本输入”成员之后。
var cloudQuery = new ParseQuery<LocalePO>();
var queryTask = cloudQuery.FirstAsync();
// wait for query to return
while (!queryTask.IsCompleted) yield return null;
LocalePO locale = queryTask.Result;
int CloudVersion = locale.version; // this works
List<TextEntry> list = new List<TextEntry>();
list = locale.keypair.Cast<TextEntry>.ToList(); // this doesn't work
foreach (var item in locale.keypair)
{
var entry = item as TextEntry; // this does not work
TextEntry entry = (TextEntry)item; // this doesn't work either
// this is my current solution which works but seems terrible
string json = JsonConvert.SerializeObject(item);
TextEntry entry = JsonConvert.DeserializeObject<TextEntry>(json);
list.Add(entry);
}
我觉得我在这里俯瞰很简单的东西,但我只是想从我拉解析本地对象,所以我可以在整个应用程序逻辑中使用的数据的数据转换。
在我看来,Parse喜欢类型为“object”的IList与ParseFieldName类型为“TextEntry”类型的IList。例如,如果我有下列情况,解析总是返回null:
[ParseFieldName("keypair")]
public IList<TextEntry> keypair
{
get { return GetProperty<IList<TextEntry>>("keypair"); }
set { SetProperty<IList<TextEntry>>(value, "keypair"); }
}
也许我应该从ParseObject派生TextEntry?我很困惑。
任何帮助,将不胜感激。
谢谢!