Пытаюсь сериализовать простой объект:
public class ChargesConditions
{
public string supplierBillID;
public ChargesConditions() { }
}
public class PayersConditions
{
public string payerIdentifier;
public PayersConditions() { }
}
[XmlType(IncludeInSchema = false)]
public enum ItemChoiceType
{
Payers,
Charges
}
public class Choices
{
[XmlChoiceIdentifier("ItemType")]
[XmlElement("PayersConditions", Type = typeof(PayersConditions))]
[XmlElement("ChargesConditions", Type = typeof(ChargesConditions))]
public object Choice;
[XmlIgnore]
public ItemChoiceType ItemType;
}
class Program
{
static void Main(string[] args)
{
ChargesConditions charge = new ChargesConditions();
charge.supplierBillID = "123";
Choices c1 = new Choices();
c1.ItemType = ItemChoiceType.Charges;
c1.Choice = charge;
var serializer = new XmlSerializer(typeof(Choices));
using (var stream = new FileStream("Choices.xml", FileMode.Create))
serializer.Serialize(stream, c1);
}
}
Программа генерирует исключение InvalidOperationException в строке
var serializer = new XmlSerializer(typeof(Choices));
Что я делаю неправильно?
Имена элементов должны соответствовать значениям перечисления:
[XmlChoiceIdentifier("ItemType")]
[XmlElement("Payers", Type = typeof(PayersConditions))]
[XmlElement("Charges", Type = typeof(ChargesConditions))]
public object Choice;
Можно записать так, будет ещё понятней:
[XmlChoiceIdentifier("ItemType")]
[XmlElement(nameof(ItemChoiceType.Payers), Type = typeof(PayersConditions))]
[XmlElement(nameof(ItemChoiceType.Charges), Type = typeof(ChargesConditions))]
public object Choice;
Виртуальный выделенный сервер (VDS) становится отличным выбором
В системе имеется установленная службаУправление ею из другого приложения осуществляется через ServiceController:
При попытке обновить таблицу в бд в microsoft visual studio 2017 вылетает из программы, после захода в программу созданная таблица исчезает (скорее всего...
Помогите с кодом на C# для рекурсивного поиска пути в графе