我有一個System.Type對象,表示我想要加載的頁面。此頁面可能來自當前的程序集或其他庫。有沒有一種通用的方式將其轉換爲System.Uri,我可以傳遞給Frame.Navigate?如何將System.Type轉換爲Uri?
0
A
回答
1
兩者之間唯一標準的接口是所有對象實現ToString()並且一個或多個System.Uri構造函數接受一個字符串。
除此之外的任何東西都需要由您自己創作。
1
頁類型和頁的URI不一定是乾淨的映射,但是如果你沒有做過什麼瘋狂的,你可以做這樣的事情:
Type blah;
var location = new Uri("/" + blah.Name + ".xaml", UriKind.Relative);
0
這不是一個完美的解決方案。它需要程序集名稱和根名稱空間匹配。它還需要asseblies文件夾結構來匹配它的名稱空間結構。
var assemblyName = pageType.Assembly.FullName.Substring(0, pageType.Assembly.FullName.IndexOf(","));
var pageName = pageType.FullName;
pageName = pageName.Substring(assemblyName.Length+1);
pageName = pageName.Replace(".", "/");
var targetString = string.Format("/{0};component/{1}.xaml",assemblyName, pageName);
var targetUri = new Uri(targetString, UriKind.Relative);
+0
參考資料:http://windowsphonegeek.com/tips/wp7-navigating-to-a-page-in-different-assembly – 2012-01-09 23:23:08
相關問題
- 1. 將WMI CimType轉換爲System.Type
- 2. 無法將System.Type轉換爲字節[]
- 3. 將對象轉換爲linq中的System.Type
- 4. 將System.Type轉換爲特定的類
- 5. 如何讓Json.NET將Int32轉換爲URI
- 6. 如何將URL轉換爲URI?
- 7. 如何將位圖轉換爲Uri?
- 8. 如何將Uri圖像轉換爲Base64?
- 9. 如何最好地將DbType轉換爲System.Type?
- 10. 如何使用System.Type將XElement轉換爲GUID?
- 11. 將URI轉換爲GUID
- 12. 將URI轉換爲路徑
- 13. 錯誤:無法將類型System.type轉換爲system.drawing.Image
- 14. 錯誤「無法將類型'字符串'隱式轉換爲'System.Type'
- 15. 將R.java變量轉換爲URI
- 16. 使用JQuery將URI轉換爲JSON
- 17. 將文件路徑轉換爲URI
- 18. Android:將URI轉換爲文件
- 19. 將數據URI轉換爲7z
- 20. 將字符串轉換爲Uri
- 21. 將odata uri轉換爲表達式
- 22. 將圖像URI轉換爲File對象
- 23. C#+ UWP:將Windowspath轉換爲ms-appdata uri
- 24. 將數據URI轉換爲文件
- 25. 將URI轉換爲Windows路徑格式
- 26. 將文件路徑轉換爲URI
- 27. 將字符串轉換爲URI
- 28. 如何將System.Type解析爲System.Data.DbType?
- 29. 如何將一個文件:// uri轉換成content:// uri?
- 30. 如何將Uri的列表<string>轉換爲列表<Uri>?
更接近。不幸的是,除非class blah在項目的根文件夾中,否則不起作用。 – 2012-01-09 23:20:46
是的,這就是我上面所說的瘋狂事情。問題是你可能沒有足夠的信息。該類型的命名空間可能會幫助您確定一個位置,但沒有任何要求它們排列的東西。 – McKay 2012-01-09 23:54:08