这个问题有点复杂,所以我会尝试解释。 我有一个我用Xcode创建的自定义.plist(XML Property List)文件。 其中有许多不同类型的数据:NSDictionary,NSArray,NSString,BOOL等。

这是一个例子:

在此输入图像描述

在我的代码中,我可以快速获取整个文件的NSDictionary ,而无需使用以下代码知道数据类型(顺便说一下,这是ARC代码)。 我唯一知道的数据类型是所有键都是字符串,但是值可以是我上面显示的任何值:

+ (NSDictionary *)configDictionary
{
    collectorstemplateAppDelegate *appDelegate = (collectorstemplateAppDelegate*)
           [[UIApplication sharedApplication] delegate];
    NSString *path = [[NSBundle mainBundle] 
           pathForResource:appDelegate.currentPlist ofType:@"plist"];
    NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path];
    return dict;
}

我想做的是在C#上完成同样的事情。 我想把这些plist移到我的Windows Phone手机应用程序中,保持相同的结构。 我意识到我将需要编写一些其他代码来处理文件后的XML,但是您明白了...。我想要一个DictionaryHashTableCollection ,其操作与我上面所做的类似,而又不知道值的类型。

显然在我的情况下,像Dictionary<string, string>这样的东西对我来说不起作用。

任何帮助都会很棒。

===============>>#1 票数:3 已采纳

在这里回答我自己的问题,但寻找验证....

Dictionary<string, object>起作用吗? 因为我知道键是一个字符串,我只需要将值转换为适当的类型,对吗?

int appleID = (int) plistDict["appleid"];

如果这是正确或不正确的,请有人告诉我。

===============>>#2 票数:0

Hashtable是Dictionary的非泛型版本。 换句话说,它不需要您指定它处理的类型,您可以像在Objective-C中那样兑现。

  ask by Ethan Allen translate from so

未解决问题?本站智能推荐: