Pull Request on 2026年03月08日

dotnet/runtimeにマージされたPull RequestをAIで日本語要約

注意点

このページは、dotnet/runtimeリポジトリにマージされたPull Requestを自動的に収集し、その内容をAIが要約した内容を表示しています。そのため、必ずしも正確な要約ではない場合があります。



#125271 Issue 125270

  • 作成者: @rogerbriggen
  • 作成日時: 2026年03月06日 14:27:56(UTC)
  • マージ日時: 2026年03月08日 15:16:31(UTC)
  • ラベル: area-Meta community-contribution

概要

ASP.NET ライセンス情報の更新。THIRD-PARTY-NOTICES.TXT ファイルにおいて、ASP.NET に関連するライセンス表記を修正しました。

変更内容

  • THIRD-PARTY-NOTICES.TXT: ASP.NET ライセンス情報を1行修正
  • src/installer/pkg/THIRD-PARTY-NOTICES.TXT: ASP.NET ライセンス情報を1行修正

両ファイルでの一貫性を保つため、同一の変更が適用されています。

パフォーマンスへの影響

影響なし

関連Issue

Issue #125270

その他

  • ライセンス表記の更新のため、コード機能に影響はありません
  • dotnet/runtime リポジトリに含まれるサードパーティライセンスの適切な管理に関連する変更です

#124429 Add missing Invalidate() calls to FileInfo state-changing methods

  • 作成者: @lufen
  • 作成日時: 2026年02月14日 20:22:19(UTC)
  • マージ日時: 2026年03月08日 21:36:23(UTC)
  • ラベル: area-System.IO community-contribution

概要

FileInfo のファイルシステム状態を変更するメソッド(Open、Replace、Encrypt、Decrypt、CreateAsHardLink など)に対して、キャッシュされたプロパティ(Exists、Length、タイムスタンプ)を無効化する Invalidate() 呼び出しを追加しました。これにより、ファイルシステムの変更後にこれらのプロパティが次のアクセス時に正しく更新されるようになります。既に正しく動作している Create()、Delete()、MoveTo() と同じパターンに統一します。

変更内容

  • FileInfo.cs: 9つのメソッドに Invalidate() 呼び出しを追加

    • Open(FileStreamOptions)、Open(FileMode, FileAccess, FileShare)
    • OpenRead()、OpenWrite()、OpenText()
    • Replace(string, string?)、Encrypt()、Decrypt()
    • CreateAsHardLink(string)
  • InvalidateOnStateChange.cs: 12個の回帰テストを追加

    • 修正されたすべてのメソッドの動作を検証
  • System.IO.FileSystem.Tests.csproj: テストファイルの参照を追加

パフォーマンスへの影響

影響なし。キャッシュの無効化は軽量な操作(フラグ設定)であり、パフォーマンスの低下はありません。むしろ、不正なキャッシュ値を使用していた場合の余計な処理を回避できます。

関連Issue

#117709

その他

包括的な監査により、FileInfo、DirectoryInfo、FileSystemInfo のすべてのメソッドが検証されました。CopyTo()、CreateSubdirectory()、ResolveLinkTarget() など新規オブジェクトを返すメソッドや読み取り専用メソッドは無効化が不要です。


#123348 Fix interpreting baud rate bitmask as decimal value

  • 作成者: @mrek-msft
  • 作成日時: 2026年01月19日 13:20:52(UTC)
  • マージ日時: 2026年03月08日 21:11:59(UTC)
  • ラベル: community-contribution area-System.IO.Ports

概要

Windows シリアルポートドライバから取得するボーレート最大値(dwMaxBaud)が、ビットマスク形式ではなく10進数値で返されるケースに対応しました。Silicon Labs USB to UART コンバータなどのドライバが10進数を返す場合、従来は検証エラーが発生していました。新しいヘルパーメソッド ConvertMaxBaudBitMaskToBaudRate を追加し、ビットマスクと10進数の両形式に対応するようになりました。

変更内容

System.IO.Ports/src/System/IO/Ports/SerialStream.Windows.cs

  • ConvertMaxBaudBitMaskToBaudRate ヘルパーメソッドを新規追加(dwMaxBaud フィールドをビットマスクまたは10進数値として解釈)
  • BaudRate プロパティセッターを更新(変換された値で検証を実施)
  • SerialStream コンストラクターを更新(変換された値で検証を実施)
  • 変更行数:+45/-5

パフォーマンスへの影響

影響なし。検証時のビットマスク変換は一度限りの処理であり、パフォーマンスへの実質的な影響はありません。

関連Issue

#119105

その他

本修正により、Windows ドライバが返すボーレート最大値の形式(ビットマスク/10進数)の違いに関わらず、System.IO.Ports のシリアルポート通信が正常に動作するようになります。特にサードパーティの USB to UART コンバータを使用する場合の互換性が向上しています。


#107369 Binary writer fix

  • 作成者: @koszeggy
  • 作成日時: 2024年09月04日 19:12:41(UTC)
  • マージ日時: 2026年03月08日 21:38:17(UTC)
  • ラベル: area-System.IO community-contribution

概要

.NET 6.0で導入されたBinaryWriter.Write(string)の最適化により、派生クラスの仮想メソッド呼び出しがバイパスされる問題を修正しています。短いUTF-8文字列の最適化時にGetType() == typeof(BinaryWriter)チェックを追加し、派生クラスでのメソッドディスパッチを確保します。

変更内容

  • src/libraries/System.Private.CoreLib/src/System/IO/BinaryWriter.cs

    • 短いUTF-8文字列最適化の適用前に型チェック追加(GetType() == typeof(BinaryWriter)
    • これにより、派生クラスのWrite(byte)オーバーライドが正しく呼ばれるように修正
  • src/libraries/System.Runtime/tests/System.IO.Tests/BinaryWriter/BinaryWriter.WriteTests.cs

    • TestWriter/TestReaderクラスを追加(内部位置を追跡)
    • UTF-8/UTF-16エンコーディングの両方で派生クラスのテストを実装
    • 基本クラスと派生クラスでの仮想メソッド呼び出しの対称性を検証

パフォーマンスへの影響

型チェック(GetType() == typeof(BinaryWriter))追加により、派生クラスのインスタンスでは最適化パスが実行されなくなります。ただし、基本クラスのインスタンスではパフォーマンス低下はありません。派生クラスではWrite7BitEncodedIntメソッドを経由するため若干のオーバーヘッドが生じますが、正確な仮想メソッドディスパッチの維持が優先事項です。

関連Issue

#107265(.NET 6.0での破壊的変更に関連)

その他

  • Issue作成者はv10マイルストーン想定ですが、.NET 9への取り込みを希望
  • このPRは破壊的変更の修正であり、派生クラスを使用している既存コードの動作を回復させます
  • レビュー済み(huoyaoyuan、jeffhandley、adamsitnikなど複数レビュワー)

目次