Хочу сериализовать мои данные в это:
<?xml version="1.0" encoding="ibm850"?>
<Batch Name="Test batch">
<ExecuteCommand Command="..." />
<WaitCommand Seconds="5" />
</Batch>
Но вместо этого я получаю (заметку о переносе элемента Commands)
<?xml version="1.0" encoding="ibm850"?>
<Batch Name="Test batch">
<Commands><!-- I want to get rid of thiw wrapper Commands element and just -->
<ExecuteCommand Command="..." />
<WaitCommand Seconds="5" />
</Commands>
</Batch>
Вот пример кода, использованного для создания этого:
public class BaseCommand //base class
{
[XmlAttribute]
public string Result { get; set; }
}
public class ExecuteCommand : BaseCommand
{
[XmlAttribute]
public string Command { get; set; }
}
public class WaitCommand : BaseCommand
{
[XmlAttribute]
public int Seconds { get; set; }
}
public class Batch
{
[XmlAttribute]
public string Name { get; set; }
private List<BaseCommand> _commands = new List<BaseCommand>();
[XmlArrayItem(typeof(ExecuteCommand))]
[XmlArrayItem(typeof(WaitCommand))]
public List<BaseCommand> Commands
{
get
{
return _commands;
}
set
{
_commands = value;
}
}
public static void Main()
{
XmlSerializer serializer = new XmlSerializer(typeof(Batch));
Batch b = new Batch();
b.Name = "Test batch";
b.Commands.Add(new ExecuteCommand() { Command = "..." });
b.Commands.Add(new WaitCommand() { Seconds = 5 });
serializer.Serialize(Console.Out, b);
Console.Read();
}
}
Искал и читал кучу статей на эту тему. Все они, кажется, предоставляют решение для сериализации коллекций с одним типом класса (без использования наследования ). Я использую наследование, и ничего не работает. К сожалению, мне приходится выводить точный XML-документ из-за устаревшей поддержки
-. 121 ---828748-Я использую объект ServerXMLHTTP для выполнения некоторых http-запросов к сценарию excel 2007 vba.
Но мне нужно подключиться к https-серверу, который использует самоподписанный SSL-сертификат -, поэтому по умолчанию я получаю сообщение «Центр сертификации недействителен или неверен». Есть ли способ настроить объект ServerXMLHTTP, чтобы он не требовал сертификата CA?
Некоторый пример кода следует:
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
objHTTP.Open "POST", "https://invernalia.homelinux.net", False, "user", "password"
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.send ("")