チェンジセット 1657 (default)
- 日時:
- 2024/08/08 2:38:35 (2ヵ月前)
- 場所:
- framework/trunk
- ファイル:
-
- 1個の追加
- 3個の更新
凡例:
- 未変更
- 追加
- 削除
-
framework/trunk/CoreLibrary/CoreLibrary.csproj
r1655 r1657 165 165 <Compile Include="Sources\IO\BufferedPipeStream.cs" /> 166 166 <Compile Include="Sources\IO\CloseExceptionIgnorableStream.cs" /> 167 <Compile Include="Sources\IO\CloseExceptionIgnorableTextWriter.cs" /> 167 168 <Compile Include="Sources\IO\CountedStream.cs" /> 168 169 <Compile Include="Sources\IO\DeliveryStream.cs" /> -
framework/trunk/CoreLibrary/Sources/IO/IOUtility.cs
r1655 r1657 1435 1435 1436 1436 /// <summary> 1437 /// 指定したライタを、破棄時に発生する例外を無視するライタでラップします。 1438 /// </summary> 1439 /// <param name="writer">ラップするライタ。</param> 1440 /// <returns> 1441 /// ラップしたライタ。 1442 /// </returns> 1443 /// <exception cref="ArgumentNullException"> 1444 /// <paramref name="writer"/> が <see langword="null"/> 参照です。 1445 /// </exception> 1446 public static TextWriter CreateCloseExceptionIgnorableTextWriter(TextWriter writer) 1447 { 1448 return new CloseExceptionIgnorableTextWriter(writer); 1449 } 1450 1451 /// <summary> 1437 1452 /// 文字がディレクトリセパレータを表すかを取得します。 1438 1453 /// </summary> -
framework/trunk/CoreTest/Sources/IO/IOUtilityTest.cs
r1655 r1657 730 730 731 731 /// <summary> 732 /// <see cref="IOUtility.CreateCloseExceptionIgnorableTextWriter"/> をテストします。 733 /// </summary> 734 [Test] 735 public void TestCreateCloseExceptionIgnorableTextWriter() 736 { 737 Action<bool, Action<TextWriter>> action = delegate(bool useWrapper, Action<TextWriter> callback) 738 { 739 using (MemoryStream rootStream = new MemoryStream()) 740 { 741 TextWriter targetWriter = new StreamWriter(rootStream, Encoding.ASCII, 0x1000); 742 if (useWrapper) 743 { 744 targetWriter = IOUtility.CreateCloseExceptionIgnorableTextWriter(targetWriter); 745 } 746 747 try 748 { 749 targetWriter.Write("XXX"); 750 } 751 finally 752 { 753 // 元のストリームを破棄 754 rootStream.Close(); 755 756 // StreamWriter.Close() では書き込まれたデータがある場合 Flush() を呼ぶので例外が発生する 757 callback(targetWriter); 758 } 759 } 760 }; 761 762 // Close() で例外が発生することを確認 763 action( 764 false, 765 delegate(TextWriter writer) 766 { 767 Assert.That( 768 writer.Close, 769 Throws.TypeOf<ObjectDisposedException>(), 770 "Normal close"); 771 }); 772 773 // Close() で例外が発生しないことを確認 774 action( 775 true, 776 delegate(TextWriter writer) 777 { 778 writer.Close(); 779 }); 780 } 781 782 /// <summary> 732 783 /// 再解析ポイントを作成します。 733 784 /// </summary>
※ 詳しい使い方は
TracChangeset を参照してください。