public static void WriteMessage(this IObjectWriter writer, Message message) { Guard.NotNull(writer, "writer"); var composite = message as CompositeMessage; if(composite != null) { foreach(var component in composite.Messages) { WriteMessage(writer, component); } } else { writer.Write(message); } }