IT박스

문자열을 Guid로 변환하는 방법

itboxs 2020. 6. 10. 22:50
반응형

문자열을 Guid로 변환하는 방법


이 질문에는 이미 답변이 있습니다.

Guid에 대한 TryParse 메소드를 찾지 못했습니다. 다른 사람들이 문자열 형식의 guid를 guid 유형으로 변환하는 방법을 궁금합니다.

Guid Id;
try
{
    Id = new Guid(Request.QueryString["id"]);
}
catch
{
    Id = Guid.Empty;
}

new Guid(string)

를 사용하여 볼 수도 있습니다

TypeConverter

.


다음과 같은 코드를 사용하십시오.

new Guid("9D2B0228-4D0D-4C23-8B49-01A698857709")

"9D2B0228-4D0D-4C23-8B49-01A698857709"대신 문자열 값을 설정할 수 있습니다


Guid.TryParse()

https://msdn.microsoft.com/de-de/library/system.guid.tryparse(v=vs.110).aspx

또는

Guid.TryParseExact()

https://msdn.microsoft.com/de-de/library/system.guid.tryparseexact(v=vs.110).aspx

.NET 4.0 (또는 3.5?)


이것은 당신을 꽤 가깝게 만들 것이고, 나는 그것을 프로덕션 환경에서 사용하며 결코 충돌하지 않았습니다. 그러나 리플렉터에서 guid의 생성자를 보면 모든 확인 사항이 표시됩니다.

 public static bool GuidTryParse(string s, out Guid result)
    {
        if (!String.IsNullOrEmpty(s) && guidRegEx.IsMatch(s))
        {
            result = new Guid(s);
            return true;
        }

        result = default(Guid);
        return false;
    }

    static Regex guidRegEx = new Regex("^[A-Fa-f0-9]{32}$|" +
                          "^({|\\()?[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}(}|\\))?$|" +
                          "^({)?[0xA-Fa-f0-9]{3,10}(, {0,1}[0xA-Fa-f0-9]{3,6}){2}, {0,1}({)([0xA-Fa-f0-9]{3,4}, {0,1}){7}[0xA-Fa-f0-9]{3,4}(}})$", RegexOptions.Compiled);

불행히도 TryParse ()에 해당하는 것은 없습니다. System.Guid의 새 인스턴스를 만들고 문자열 값을 전달하면 유효하지 않은 경우 발생하는 3 가지 예외를 포착 할 수 있습니다.사람들은:

  • ArgumentNullException
  • FormatException
  • OverflowException

인스턴스의 유효성을 검사하고 생성하지 않으려는 경우 인스턴스를 만들기 전에 문자열에서 정규식을 수행 할 수있는 구현을 보았습니다.


원하는 것이 매우 기본적인 오류 검사라면 문자열의 길이를 확인할 수 있습니다.

              string guidStr = "";
              if( guidStr.Length == Guid.Empty.ToString().Length )
                 Guid g = new Guid( guidStr );

참고 URL :

https://stackoverflow.com/questions/350500/how-to-try-convert-a-string-to-a-guid

반응형