Вы можете поместить время ожидания в массив и в конце отправить уникальное сообщение со всеми аргументами массива.
message.channel.send('**NOTE:** 0min wait means the ride is **closed**.')
IoA.GetWaitTimes().then(function(rides) {
let tosend = []
for(let i=0, ride; ride=rides[i++];) {
tosend.push(`**${ride.name}**\n ${ride.waitTime} min wait`)
}
message.channel.send("**__Wait time for IoA__**\n\n" + tosend.join('\n'))
}, console.error);
return
Нет проблем - просто передайте пустую строку в качестве пространства имен по умолчанию в XML-сериализатор:
XmlSerializer newSerializer =
new XmlSerializer(typeOfT, "");
К сожалению, нет простой перегрузки конструктора, если вам действительно нужно определить XmlAttributeOverrides
и пространство имен по умолчанию - так что либо вы можете пропустить XmlAttributeOverrides
и использовать тот конструктор, который я упомянул, либо вам нужно использовать тот, который определяет все возможные параметры (включая XmlAttributeOverrides и пространства имен XML по умолчанию - и еще несколько). ).
public static string SerializeToXml(object obj)
{
UTF8Encoding encoding = new UTF8Encoding(false);
var xmlAttributes = new XmlAttributes();
xmlAttributes.Xmlns = false;
xmlAttributes.XmlType = new XmlTypeAttribute() { Namespace = "" };
var xmlAttributeOverrides = new XmlAttributeOverrides();
var types = obj.GetType().Assembly.GetTypes().Where(t => string.Equals(t.Namespace, obj.GetType().Namespace, StringComparison.Ordinal));
foreach (var t in types) xmlAttributeOverrides.Add(t, xmlAttributes);
XmlSerializer sr = new XmlSerializer(obj.GetType(), xmlAttributeOverrides);
MemoryStream memoryStream = new MemoryStream();
StreamWriter writer = new StreamWriter(memoryStream, encoding);
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add(string.Empty, string.Empty);
// get the stream from the writer
memoryStream = writer.BaseStream as MemoryStream;
sr.Serialize(writer, obj, namespaces);
// apply encoding to the stream
return (encoding.GetString(memoryStream.ToArray()).Trim());
}
Это будет даже работать на сложный объект, содержащий Кредиты вложенного объекта к user3444796 и Наставнику