Wie kann ich den Bitmask -Wert mit dem Flag -Attribut in C#wieder aus einem Enum herausholen?
-
24-10-2019 - |
Frage
In unserer Datenbank haben wir eine Bitmaske, die darstellt, welche Arten von Aktionen ein Benutzer ausführen können.
In unserem C# Client, wenn wir diesen Ganzzahlwert aus der Datenbank abrufen, konstruieren wir ein Enum/Flag. Es sieht im Folgenden etwas aus:
[Flags]
public enum SellPermissions
{
Undefined = 0,
Buy = 1,
Sell = 2,
SellOpen = 4,
SellClose = 8
// ...
}
In unserer Anwendung habe ich eine Seite "Bearbeitungsberechtigungen", mit der ich dann den Wert dieses Enum mithilfe der bitweisen oder auf unterschiedlichen Enumwerte ändern kann.
permissions = SellPermisions.Buy | SellPermissions.Sell;
Nachdem diese Änderungen vorgenommen wurden, muss ich in meinem Datenbankanruf ein Update/Einfügen -SPROC aufrufen, das einen Ganzzahlwert erwartet.
Wie bekomme ich den Bitgewise -Wert des Ganzzahl aus meinem Auflauf/Flag zurück, damit ich die geänderten Berechtigungen in der Datenbank festlegen kann?
Lösung
Ich konnte es tun, indem ich die Variable in ein int überlegte.
int newPermissions = (int)permissions.
Andere Tipps
int permissionsValue = (int) permissions;