0

Webプロジェクトにテキストファイルを追加しました。右クリックしてプロパティメニューをクリックし、[ビルドアクション]->[リソース]を選択します。

コードビハインドページでファイルのコンテンツを取得するにはどうすればよいですか。

これを試してみましたが、ストリームnullを受け取りました

 internal string GetFromResources(string resourceName)
        {
            Assembly assem = this.GetType().Assembly;
            using (Stream stream = assem.GetManifestResourceStream(resourceName))
            {
                using (var reader = new StreamReader(stream))
                {
                    return reader.ReadToEnd();
                }
            }
        }

しかし、それは機能していません。

助けてください

4

2 に答える 2

2

ビルドアクションを埋め込みリソースに変更してみて、リソース名に名前空間が含まれていることを確認してください。すなわち

MyProjectNamespace.MyTextFileName.txt

ファイルがサブフォルダにある場合は、次を使用します。

MyProjectNamespace.SubFolderName.MyTextFileName.txt
于 2012-11-06T12:07:15.820 に答える
1

私はそれを解決しました、以下は私が取ったステップです。

まず、テキストファイルを埋め込みリソースとして定義しました。2番目の問題は、アセンブリ名前空間をテキストファイルに追加しなかったことです。

そこで、関数を変更して名前空間を追加しました

internal string GetFromResources(string resourceName)
{

    Assembly assem = this.GetType().Assembly;
    **List<string> listNameSpaces = assem.GetTypes().Select(t => t.Namespace).Distinct().ToList<string>();**

    foreach (string ns in listNameSpaces)
    {
        **string nsResourceName = ns + "." + resourceName;**
        using (Stream stream = assem.GetManifestResourceStream(nsResourceName))
        {
            if (stream != null)
            {
                using (var reader = new StreamReader(stream))
                {
                    return reader.ReadToEnd();
                }
            }
        }
    }

    return string.Empty;
}
于 2012-11-06T12:04:48.480 に答える