如何使用Mono.Cecil从TypeDefinition检索GuidAttribute

时间:2018-12-11 15:35:44

标签: c# .net gac mono.cecil type-definition

出于开发自定义工具的目的,我使用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;
        }

0 个答案:

没有答案