Ist es möglich, eine enum von einem int in C# zu deserialisieren. z.B. Wenn ich die folgende Klasse haben:C# deserializing enums von Ganzzahlen
class Employee
{
public string Name { get; set;}
public int EmployeeTypeID { get; set;}
}
ich dies einfach erstellen können von XML
<Employee>
<Name>Joe Bloggs</Name>
<EmployeeTypeID>1</EmployeeTypeID>
</Employee>
so etwas wie dies mit:
Employee employee = (Employee)new XmlSerializer(typeof(Employee)).Deserialize(XmlReader);
mit sehr wenig Arbeit beteiligt sind, ermöglicht diese mir Verwenden Sie einen generischen Dienst, den ich für alle Datenbankobjekte verwenden kann, indem Sie einen Auswahlbefehl, eine Verbindungszeichenfolge und einen Typ eingeben und ein Array von Objekten abrufen, ohne dass eine weitere Zuordnung erforderlich ist. Allerdings bin ich mit enums losgekommen. jetzt statt eine ganze Zahl EmployeeType Gesetzt ist eine Enumeration:
public enum EmployeeTypeEnum
{
Admin = 1,
Sales = 2
}
so meine Klasse wird:
class Employee
{
public string Name { get; set;}
public EmployeeTypeEnum EmployeeTypeID { get; set;}
}
Kann ich die gleiche XML verwenden und machen C# erkennen, dass der int-Wert von EmployeeTypeID im xml sollte mit dem int-Wert der enum übereinstimmen? Es gibt andere Fragen, die da draußen ähnlich sind, aber keine haben eine sehr befriedigende Antwort sind ziemlich alt und schließen Großhandelsänderungen zum Code ein. Ich hoffe auf eine bessere Lösung ...
Als eine mögliche separate Notiz (und leicht in Erwartung einiger Antworten), ist die Verwendung von Enums für diese eine Praxis am besten vermieden? Sollte ich Schlüssel-Wert-Paare verwenden? Ich würde immer Schlüssel-Wert-Paare (oder ähnliches) verwenden, wenn es wahrscheinlich Änderungen geben würde, aber in diesem Fall ist EmployeeType fest und wird sich niemals ändern.
+1 - eine jener Fragen, stoße ich auf, dass ich nicht in großem Nutzen unter Beweis stellen kann, sondern freuen uns darauf, die Antwort zu sehen. – SkonJeet
Unterstützt http://stackoverflow.com/questions/506368/how-do-i-serialize-an-enum-value-as-anint Hilfe? – Bridge
Oder http://stackoverflow.com/questions/4250656/deserializing-enums? – kerrubin