3
VBのXMLリテラルのCR-LFの組み合わせは、静かにLFに変換されるようです。これは、私と同じようにVB.NET XMLリテラルの改行
31-0A-32
ではなく
31-0D-0A-32
得
Module Module1
Sub Main()
Dim x As XElement = <xml>1
2</xml>
' Print Bytes
Console.WriteLine(String.Join("-", x.Value.Select(Function(c) AscW(c).ToString("X2"))))
End Sub
End Module
のVisual Studio 2017(フレームワーク4.5.2)でコンパイル:
は、次の最小限の例を考えてみましょう期待しています。私は、バイナリエディタでソースファイルをチェックし、xmlリテラルに1〜2のCR-LF(0D-0A)が含まれていることを確認します。
これは公式に文書化されている動作か、私が頼りにできないコンパイラの実装の詳細ですか?前者の場合はどこに文書化されていますか?
'しかし、LFだけでもWindows上の改行として機能することが一般的に分かります。」 - メモ帳を除いて。 ;) –
OP _really_がcr-lfを望む場合、サンプル要素を作成することができます: 'Dim x as New XElement(" xml "、" 1 "&vbCrLf&" 2 ")'。しかし、確かにこの方法は面倒です。 – MarkL
@ MarkL:現在のところ、私は '.Replace(vbLf、vbCrLf)'と書いていますが、VBのXMLリテラルの扱いが変更されれば、ひどく壊れてしまいます。 – Heinzi