Wie kann ich den Bitmask -Wert mit dem Flag -Attribut in C#wieder aus einem Enum herausholen?

StackOverflow https://stackoverflow.com/questions/2966895

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?

War es hilfreich?

Lösung

Ich konnte es tun, indem ich die Variable in ein int überlegte.

int newPermissions = (int)permissions.

Andere Tipps

int permissionsValue = (int) permissions;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top