1

クラス ライブラリ ファイルを作成しています。これに、ストアド プロシージャ スクリプト ファイルを埋め込みました。そのため、sp データを文字列として取得する必要があり、C# で作成する必要があります。したがって、この GetManifestResourceStream メソッドには、アセンブルとスクリプト ファイルのフルネームが必要です。だから私はやった。しかし、ストリーム オブジェクトが null 値を取得する理由がわかりませんでした。

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();
  }
}
4

1 に答える 1

2

アセンブリ名を取得して定数文字列値を取得するのはちょっと奇妙です...しかし、「。」がありません。名前を作成する方法:

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

名前を単純にハードコーディングする方が安全で簡単です。

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

注 「リソースを埋め込んでアクセスする方法」は、Micorsoft サポート サイトで入手でき、このトピックをカバーしています。

于 2012-12-13T05:30:38.500 に答える