Как XML-сериализовать полиморфный массив без элемента-обертки

Хочу сериализовать мои данные в это:

<?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- HTTPS-запрос VBA ServerXMLHTTP с самоподписанным сертификатом Я использую объект ServerXMLHTTP для выполнения некоторых http-запросов к сценарию excel 2007 vba. Но мне нужно подключиться к https-серверу, который использует самоподписанный -SSL-сертификат, поэтому по умолчанию я получаю...

Я использую объект 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 ("")
19
задан Javier Novoa C. 21 July 2012 в 18:17
поделиться