Как я могу проверить тип данных Guid? - PullRequest
5 голосов
/ 01 декабря 2011

Есть ли способ проверить тип данных GUID?

Я использую атрибуты проверки.http://msdn.microsoft.com/en-us/library/ee707335%28v=vs.91%29.aspx

Ответы [ 4 ]

6 голосов
/ 01 декабря 2011

Вы можете использовать RegularExpressionAttribute. Вот пример с использованием формата xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:

[RegularExpression(Pattern = "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}")]

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

3 голосов
/ 01 декабря 2011

Вы можете написать свой собственный подкласс CustomValidationAttribute , который гарантирует, что значение является guid, используя TryParse метод System.Guid (спасибо, Джон!).

0 голосов
/ 11 марта 2016

Для проверки будет использоваться встроенный тип Guid .Net, поэтому вам не нужно использовать пользовательское регулярное выражение (которое не было подвергнуто строгому тестированию Microsoft):затем просто используйте его следующим образом:

    [RequiredGuid]
    public Guid SomeId { get; set; }

Если в этом поле указано какое-либо из следующего, оно будет установлено по умолчанию (Guid) и будет перехвачено Validator:1008 *

0 голосов
/ 01 декабря 2011

Эта функция может помочь вам ....

public static bool IsGUID(string expression)
{
    if (expression != null)
    {
        Regex guidRegEx = new Regex(@"^(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})$");

        return guidRegEx.IsMatch(expression);
    }
    return false;
}

Вы можете удалить статический или поместить функцию в некоторый класс утилит

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...