В целях разработки пользовательского инструмента я использую 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;
}