7

単体テストの作成を始めたばかりで、現在、次の状況でブロックされています。

FileStream オブジェクトを持つメソッドがあり、それに「文字列」を渡そうとしています。したがって、文字列を FileStream に変換したいと思います。これを行っています。

File.WriteAllText(string.Concat(Environment.ExpandEnvironmentVariables("%temp%"),   
 @"/test.txt"), testFileContent); //writes my string to a temp file!


new FileStream(string.Concat(Environment.ExpandEnvironmentVariables("%temp%"),  
    @"/test.txt"), FileMode.Open) //open that temp file and uses it as a fileStream!

ファイルを閉じてください。

しかし、文字列を fileStream に変換するための非常に単純な代替手段がいくつかあるに違いないと思います。

提案は大歓迎です![スタックオーバーフローにはこの質問に対する他の回答がありますが、それに対する簡単な解決策はないようです]

前もって感謝します!

4

2 に答える 2

18

まず、メソッドをStreamの代わりにallow に変更しますFileStreamFileStream私が覚えているように、メソッドやプロパティを追加せず、抽象クラスを実装するだけの実装Streamです。そして、以下のコードを使用して、次のように変換できstringますStream:

public Stream GenerateStreamFromString(string s)
{
    MemoryStream stream = new MemoryStream();
    StreamWriter writer = new StreamWriter(stream);
    writer.Write(s);
    writer.Flush();
    stream.Position = 0;
    return stream;
}
于 2013-07-24T11:49:50.907 に答える