public override void LooseMarshal(OpenWireFormat wireFormat, Object o, BinaryWriter dataOut)
{
ProducerInfo info = (ProducerInfo)o;
base.LooseMarshal(wireFormat, o, dataOut);
LooseMarshalCachedObject(wireFormat, (DataStructure)info.ProducerId, dataOut);
LooseMarshalCachedObject(wireFormat, (DataStructure)info.Destination, dataOut);
LooseMarshalObjectArray(wireFormat, info.BrokerPath, dataOut);
dataOut.Write(info.DispatchAsync);
}