this accepted answer을 사용하여 Guid 열거 형을 생성했습니다.GUID 열거 형 만들기
public enum AccessRoles
{
[EnumGuid("2ED3164-BB48-499B-86C4-A2B1114BF1")]
SysAdmin =1,
[EnumGuid("A5690E7-1111-4AFB-B44D-1DF3AD66D435")]
Admin = 2,
[EnumGuid("30558C7-66D9-4189-9BD9-2B87D11190")]
OrgAdmin = 3,
}
class EnumGuid : Attribute
{
public Guid Guid;
public EnumGuid(string guid)
{
Guid = new Guid(guid);
}
}
나는 GUID를 열거의 일부가 있는지 확인하십시오, 그것은 userId를 = 2ED3164-BB48-499B-86C4-A2B1114BF1가 유효한 GUID 경우에도 예외 System.InvalidOperationException 발생합니다.
if(Enum.IsDefined(typeof(AccessRoles), userId))
{
}
문자열로 변환하고 확인하려고했지만 오류가 발생하지 않지만 if 루프 내부로 들어 가지 않았습니다.
if(Enum.IsDefined(typeof(AccessRoles), userId.ToString().ToUpper()))
{
}
그래서 어떻게 수정합니까? 아니면 더 좋은 방법이 있습니까? 여러 if 문이나 case 문을 피하기 위해 열거 형으로 사용하여 재사용 할 수 있도록하고 싶습니다.
열거 형에 특성을 추가해도 해당 열거 형에 유효한 값은 변경되지 않습니다. 'Guid' 값은'IsDefined()'메소드에 유효하지 않습니다. 왜 그것이 효과가 있다고 생각 했습니까? 당신은 실제로 무엇을하려고합니까? 질문을 수정하여 문맥을 분명히 보여주는 좋은 [mcve]와 구체적으로 파악할 수없는 것에 대한 좋은 설명을 포함 시키십시오. –
'2ED3164-BB48-499B-86C4-A2B1114BF1'은 유효한 GUID가 아니므로'3' 문자가 누락되었습니다. 처음 8 개는 '1'이고 마지막 부분은'2 '입니다. – 12seconds
특정 userId가 AccessRoles에있는 3 Guids에 속하는지 확인하고 싶습니다. 따라서 링크의 예제를 사용하여 Guids가있는 열거 형을 디자인하고 존재하는지 확인하십시오. –