C# NServiceBus生成没有简单类型名称空间的XML消息

C# NServiceBus生成没有简单类型名称空间的XML消息,c#,xml-serialization,nservicebus,nservicebus5,C#,Xml Serialization,Nservicebus,Nservicebus5,我目前正在从NServiceBus 4.7.5升级到NServiceBus 5.2.4,在使用XmlSerializer时,我注意到当我尝试序列化消息时,它会生成无效的XML消息- 简单类型的名称空间不再声明,但它们仍在文档中使用 例如,如果我尝试序列化一条公开SerializedPair属性的消息,该属性定义如下: public class SerializedPair { public string Key { get; set; } public object Value

我目前正在从NServiceBus 4.7.5升级到NServiceBus 5.2.4,在使用XmlSerializer时,我注意到当我尝试序列化消息时,它会生成无效的XML消息- 简单类型的名称空间不再声明,但它们仍在文档中使用

例如,如果我尝试序列化一条公开SerializedPair属性的消息,该属性定义如下:

public class SerializedPair
{
    public string Key { get; set; }
    public object Value { get; set; }
}
在4.7.5中,它将被序列化为:

<?xml version="1.0"?>
<Messages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
          xmlns="http://tempuri.net/xxx.Crm.ServiceBusMessages" 
          xmlns:guid="Guid" xmlns:int32="Int32" 
          xmlns:string="String" 
          xmlns:datetime="DateTime" 
          xmlns:boolean="Boolean" 
          xmlns:decimal="Decimal">
    <UpdateContact>
        <SerializedPair>
            <Key>AddressId</Key>
            <guid:Value>ebdeeb33-baa7-4100-b1aa-eb4d6816fd3d</guid:Value>
        </SerializedPair>
       ....
<?xml version="1.0" ?>
<UpdateContact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
               xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
               xmlns="http://tempuri.net/xxx.Crm.ServiceBusMessages">
    <SerializedPair>
        <Key>AddressId</Key>
        <guid:Value>70a22cd7-64fd-4d6d-ab13-2ad7800addc7</guid:Value>
    </SerializedPair>
    ....

地址ID
ebdeeb33-baa7-4100-b1aa-eb4d6816fd3d
....
在5.2.4中,它被序列化为:

<?xml version="1.0"?>
<Messages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
          xmlns="http://tempuri.net/xxx.Crm.ServiceBusMessages" 
          xmlns:guid="Guid" xmlns:int32="Int32" 
          xmlns:string="String" 
          xmlns:datetime="DateTime" 
          xmlns:boolean="Boolean" 
          xmlns:decimal="Decimal">
    <UpdateContact>
        <SerializedPair>
            <Key>AddressId</Key>
            <guid:Value>ebdeeb33-baa7-4100-b1aa-eb4d6816fd3d</guid:Value>
        </SerializedPair>
       ....
<?xml version="1.0" ?>
<UpdateContact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
               xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
               xmlns="http://tempuri.net/xxx.Crm.ServiceBusMessages">
    <SerializedPair>
        <Key>AddressId</Key>
        <guid:Value>70a22cd7-64fd-4d6d-ab13-2ad7800addc7</guid:Value>
    </SerializedPair>
    ....

地址ID
70a22cd7-64fd-4d6d-ab13-2ad7800addc7
....
请注意,“Messages”元素不再存在,“xmlns:guid”命名空间声明也丢失,这使得此XML无效。 如何让NServiceBus再次生成有效的xml

为完整起见,我的总线配置如下所示:

BusConfiguration busConfiguration = new BusConfiguration();
busConfiguration.UseSerialization<XmlSerializer>();
busConfiguration.UseTransport<MsmqTransport>();
ISendOnlyBus bus = Bus.CreateSendOnly(busConfiguration);
总线配置总线配置=新总线配置();
useConserialization();
busConfiguration.UseTransport();
ISendOnlyBus bus=bus.CreateSendOnly(总线配置);
提出的问题,让我们在那里跟踪它提出的问题,让我们在那里跟踪它