[英]How can I retrieve an embedded xml resource?
我在我的類庫中添加了一個XML文件作為嵌入式資源,方法是使用Visual Studio中的項目屬性訪問,然后使用Resources | 添加資源| 添加現有文件...
我試圖使用以下代碼訪問該文件,但我不斷返回null引用。 有人有主意嗎?
var path = Server.MapPath("~/bin/MyAssembly.dll");
var assembly = Assembly.LoadFile(path);
var stream = assembly.GetManifestResourceStream("MyNamespace.filename.xml");
我發現在Visual Studio中使用項目屬性對話框的“資源”選項卡要容易得多。 然后,您通過以下方式生成對資源的強類型引用:
Properties.Resources.Filename
GetManifestResourceStream的MSDN頁面提供了以下注釋:
如果訪問另一個程序集中的私有資源並且調用者沒有帶有ReflectionPermissionFlag.MemberAccess標志的ReflectionPermission,則此方法返回空引用(在Visual Basic中為Nothing)。
您是否在組件中將資源標記為“公共”?
我發現這篇文章很好地解釋了如何設置它: http : //www.devx.com/dotnet/Article/10831/1954
在這種情況下可能有幫助的一件事是使用不同的方法來確定嵌入資源的位置。
我個人更喜歡這種方法而不是使用“資源”選項卡,因為它允許我使用其他工具向項目添加資源以包含在編譯中。 我不必使用此工具的GUI
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.