使用したくない理由の 1 つオブジェクトのシリアル化に StringWriter を使用するのは、デフォルトでアドバタイズするエンコーディングを設定できないためです。これにより、XML ドキュメントをファイルに書き込むときに問題が発生する可能性があります。ファイルは、宣伝されているが正しくないエンコードでエンコードする必要があるためです。
これを解決するにはこの問題が発生した場合は、次のようなカスタム クラスを使用できます。
public sealed class StringWriterWithEncoding : StringWriter { public override Encoding Encoding { get; } public StringWriterWithEncoding (Encoding encoding) { Encoding = encoding; } }
このクラスを使用すると、StringWriter の作成時にエンコーディングを指定でき、正しいエンコードがアドバタイズされます。
UTF-8 エンコードのみが必要な場合は、クラスの簡略化されたバージョンを使用できます。
public sealed class Utf8StringWriter : StringWriter { public override Encoding Encoding => Encoding.UTF8; }
場合XML を SQL Server 2005 データベースに挿入する際に問題が発生した場合は、以下:
まだ問題が発生する場合は、表示されているエラー メッセージの詳細を提供してください。
以上がXML シリアル化には StringWriter を使用する必要がありますか? 使用しない場合、より良い代替手段は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。