2012-12-13 183 views
1

我正在創建類庫文件。在此我嵌入存儲過程腳本文件。所以我需要將sp數據作爲一個字符串,我必須在c#中創建。所以對於這個GetManifestResourceStream方法需要全名的彙編和腳本文件。所以我做了 。但我沒有弄清楚爲什麼我的流對象獲得空值。如何使用Assembly.GetExecutingAssembly()。GetName()獲取項目名稱空間名稱。名稱

string strNameSpace = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name; 

using (Stream stream = Assembly.GetExecutingAssembly() 
    .GetManifestResourceStream(strNameSpace + "GP_SOP_AdjustTax.sql")) 
{ 
    // Here stream is null. 

    using (StreamReader reader = new StreamReader(stream)) 
    { 
    string result = reader.ReadToEnd(); 
    } 
} 
+3

問題是什麼? – rae1

+0

請考慮在帖子正文中添加問題,並描述您的實際目標(通過名稱獲取資源聽起來不像是一個好的最終目標)。 –

回答

2

這是有點怪通過獲取組件名稱獲取常量字符串值...但是你缺少「」在構建名稱的方式:

Assembly.GetExecutingAssembly() 
    .GetManifestResourceStream(strNameSpace + ".GP_SOP_AdjustTax.sql")) 

它可能會是安全的,更容易簡單地硬編碼名稱:上Micorsoft support site和蓋

Assembly.GetExecutingAssembly() 
    .GetManifestResourceStream("WhateverYoourNamespaceIs.GP_SOP_AdjustTax.sql")) 

注「如何嵌入和訪問資源的」可用這個話題。