Можно ли десериализовать перечисление из int в С#. например Если у меня есть следующий класс:
class Employee
{
public string Name { get; set;}
public int EmployeeTypeID { get; set;}
}
Я могу легко создать это из XML
<Employee>
<Name>Joe Bloggs</Name>
<EmployeeTypeID>1</EmployeeTypeID>
</Employee>
используя что-то вроде этого:
Employee employee = (Employee)new XmlSerializer(typeof(Employee)).Deserialize(XmlReader);
С очень небольшим количеством работы это позволяет мне использовать один общий сервис, который я могу использовать для всех объектов базы данных, путем подачи команды выбора, строки подключения и типа в и извлечения массива объектов без необходимости дальнейшего сопоставления, Однако я отвязался с перечислениями. Предположим теперь, что вместо целого числа EmployeeType является перечислением:
public enum EmployeeTypeEnum
{
Admin = 1,
Sales = 2
}
поэтому мой класс будет:
class Employee
{
public string Name { get; set;}
public EmployeeTypeEnum EmployeeTypeID { get; set;}
}
Можно ли использовать тот же XML и сделать С# признаем, что значение int EmployeeTypeID в xml должно соответствовать значению int enum? Есть и другие вопросы, подобные там, но ни один из них не удовлетворительный ответ довольно старый и включает в себя оптовые изменения кода. Я надеюсь на лучшее решение...
Как возможная отдельная заметка (и немного в ожидании некоторых ответов), использует перечисления для этого, лучше всего избегать практики? Должен ли я использовать пары "ключ-значение"? Я бы всегда использовал пары Key-value (или аналогичные), если бы были изменения, но в этом случае EmployeeType фиксирован и никогда не изменится.