在 MSMQ 文件中写入一个 XML 编码为 UTF8 With Bom
Write in MSMQ file an XML encoded in UTF8 With Bom
我正在尝试在 msmq 文件中写入带有 Bom xml 的 UTF8,所以我创建了自己的格式化程序,如下所示 (http://support.microsoft.com/kb/310683)
但结果我得到了一个没有 Bom 的 UTF8 XML
所以我尝试了这个:
Public Sub Write(message As System.Messaging.Message, obj As Object) 实现 System.Messaging.IMessageFormatter.Write
Dim utf8 As UTF8Encoding = New UTF8Encoding(True)
Dim stm As Stream = New MemoryStream()
Dim writer As StreamWriter = New StreamWriter(stm, utf8)
writer.Write(obj.ToString())
message.BodyStream = stm
结束子
它有效,但它削减了我的 xml 而且我没有关闭作者 !!
在此先感谢您的帮助
问题是 StreamWriter 缓冲的数据是 not being flushed:
…
writer.Write(obj.ToString())
writer.Flush();
message.BodyStream = stm
我正在尝试在 msmq 文件中写入带有 Bom xml 的 UTF8,所以我创建了自己的格式化程序,如下所示 (http://support.microsoft.com/kb/310683)
但结果我得到了一个没有 Bom 的 UTF8 XML 所以我尝试了这个: Public Sub Write(message As System.Messaging.Message, obj As Object) 实现 System.Messaging.IMessageFormatter.Write
Dim utf8 As UTF8Encoding = New UTF8Encoding(True)
Dim stm As Stream = New MemoryStream()
Dim writer As StreamWriter = New StreamWriter(stm, utf8)
writer.Write(obj.ToString())
message.BodyStream = stm
结束子
它有效,但它削减了我的 xml 而且我没有关闭作者 !!
在此先感谢您的帮助
问题是 StreamWriter 缓冲的数据是 not being flushed:
…
writer.Write(obj.ToString())
writer.Flush();
message.BodyStream = stm