簡體   English   中英

Objective-C轉換為C#:如果字典是強類型的,如何在C#中使用多個類型的.plist?

[英]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,但是您明白了...。我想要一個DictionaryHashTableCollection ,其操作與我上面所做的類似,而又不知道值的類型。

顯然在我的情況下,像Dictionary<string, string>這樣的東西對我來說不起作用。

任何幫助都會很棒。

在這里回答我自己的問題,但尋找驗證....

Dictionary<string, object>起作用嗎? 因為我知道鍵是一個字符串,我只需要將值轉換為適當的類型,對嗎?

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

如果這是正確或不正確的,請有人告訴我。

Hashtable是Dictionary的非泛型版本。 換句話說,它不需要您指定它處理的類型,您可以像在Objective-C中那樣兌現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM