出于开发自定义工具的目的,我使用Mono.Cecil探索GAC程序集,并且在探索过程中,我想检索GAC程序集内类型的Guid属性。 基本上,我想检索可以直接从Type获取的属性: someType.GUID。但是这里我有TypeDefinition。因此,我尝试编写以下代码,但在TypeDefinition的自定义属性中找不到GuidAttribute。请让我知道我该怎么做。 这是我的代码:
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;
}