在 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