Давайте начнем:
[System.SerializableAttribute()] // useless, valuetype is implicitly so
public enum MyEnum
{
[System.Xml.Serialization.XmlEnumAttribute("035")]
Item1,
Item2
}
Теперь XmlEnumAttribute
контролирует сериализацию и десериализацию этого значения в XML.
Это ничего не значит с отдыхом в вашем коде! (извините за заглавные буквы, но никто другой, похоже, не понял).
Таким образом, когда сериализуется значение MyEnum.Item1
, будет выдано «035».
Теперь проблема в том, как вы хотите назначить это.
Это просто. Просто назначьте, как обычно. Ни один из этих атрибутов не меняет семантику нормального кода, все остается неизменным.
Пример:
Employee bob = new Employee() {Id = 1, Name = "Bob", MyEnum = MyEnum.Item1};
Абсолютно нет причин, по которым Enum.Parse
следует даже рассматривать здесь. Тип и значение перечисления статически известны.
Если вы хотите использовать Enum.Parse
, используйте его как обычно, например:
Enum.Parse(typeof(MyEnum), "Item1")