Как извлечь GuidAttribute из TypeDefinition с помощью Mono.Cecil - PullRequest
0 голосов
/ 11 декабря 2018

В целях разработки пользовательского инструмента я использую Mono.Cecil для исследования сборок GAC, а в процессе исследования я хочу получить атрибут Guid типов внутри сборок GAC.По сути, я хочу получить свойство, которое мы можем получить непосредственно из Type: someType.GUID.Но здесь у меня есть TypeDefinition.Поэтому я попытался написать следующий код, но он не находит GuidAttribute среди пользовательских атрибутов TypeDefinition.Пожалуйста, дайте мне знать, как я могу сделать это правильно.Вот мой код:

static bool GetTypeGuid(TypeDefinition tdef, out Guid AValue)
{
            bool res = false;
            AValue = Guid.Empty;
            var ca = tdef.CustomAttributes.FirstOrDefault(a => a.AttributeType.Name.Equals(nameof(GuidAttribute)));
            if (ca != null && ca.ConstructorArguments != null)
            {
                var attrArg = ca.ConstructorArguments.FirstOrDefault();
                if (attrArg.Value != null)
                {
                    var guidStr = (string)attrArg.Value;
                    res = Guid.TryParse(guidStr, out AValue);
                }
            }
            return res;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...