[英]Objective-C converting to C#: How can I use a .plist with multiple types in C# if Dictionary is strongly-typed?
這個問題有點復雜,所以我會嘗試解釋。 我有一個我用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,但是您明白了...。我想要一個Dictionary
或HashTable
或Collection
,其操作與我上面所做的類似,而又不知道值的類型。
顯然在我的情況下,像Dictionary<string, string>
這樣的東西對我來說不起作用。
任何幫助都會很棒。
在這里回答我自己的問題,但尋找驗證....
Dictionary<string, object>
起作用嗎? 因為我知道鍵是一個字符串,我只需要將值轉換為適當的類型,對嗎?
int appleID = (int) plistDict["appleid"];
如果這是正確或不正確的,請有人告訴我。
Hashtable是Dictionary的非泛型版本。 換句話說,它不需要您指定它處理的類型,您可以像在Objective-C中那樣兌現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.