ファイルを書き込むときに改行文字であるため、 Environment.NewLine を使用するライブラリを使用しています。Unix 形式のファイルを書き込むために必要なので、改行文字を変更したいと考えています。
Environment.NewLine の値を変更できますか?
他のアイデアはありますか (ファイルポストの作成を変換する以外に)?
Environment.NewLine の値を変更できますか?
いいえ。作成するプラットフォームがわかっている場合は、これらのプラットフォームごとにクラスを作成し、それらに独自の実装を持たせます。最も単純なケースでは、これは次のようになります。
public abstract class Platform { public abstract string Newline { get; } }
public sealed class Unix : Platform {
public override string Newline { get { return "\n"; } }
}
など、適切なクラスのインスタンスを使用するだけです。
Environment.Newlineは、.Netランタイムをホストしているランタイム環境の改行文字を返します。改行を別のプラットフォームの改行文字に変換するためにこれを使用しないでください。
変換用に独自のクラスを実装することをお勧めします。
サードパーティのライブラリはストリームに書き込みますか、それともファイル名を渡しますか?
前者の場合、MemoryStreamを渡してから、改行を置き換えて、必要なものを取得できます。後者では、一時ファイルに書き込んでから、実際のファイルにストリーミングします(行末を置き換えます)。
<br />
Web 出力用に NewLine の値を に変更しなければならないというこの問題がありました。
クラスで使用する別のプロパティを作成する必要がありました。それを回避する方法は本当にありません。