Как получить строковое представление перечисления битового поля в C # (MessageQueueErrorCode)? - PullRequest
0 голосов
/ 28 ноября 2010

Я получаю код ошибки -2147024891 в исключении MessageQueueException;типа MessageQueueErrorCode.Как я могу найти, какие ошибки произошли здесь?

Примечание: я извлек значения этого перечисления с помощью System.Enum.GetValues, а затем использовал запрос LINQ, чтобы выяснить, какие из них соответствуют этой ошибке, с помощью & (а также);затем получить его имя по System.Enum.GetName и соединить их с разделителем ',' ... в любом случае: ошибка!

Ответы [ 2 ]

2 голосов
/ 28 ноября 2010

Код ошибки: 0x80070005. 7 - это «код объекта», это Windows. Другими словами, вы не получили сообщение об ошибке очереди, вы получили ошибку Windows. Код ошибки 5: «Отказано в доступе».

Что-то не так с учетной записью пользователя, как правило, недостаточно прав.

2 голосов
/ 28 ноября 2010

Вы можете привести свой код ошибки к перечислению и использовать ToString ():

string error = ((MessageQueueErrorCode)ex.ErrorCode).ToString();

, который должен возвращать имя значения перечисления.

На самом деле я не уверен, что произойдет, еслиперечисление не содержит это конкретное значение (может быть выброшено исключение InvalidCastException), но вы можете попробовать его сами.

...