本文整理汇总了C#中CustomAttribute.Resolve方法的典型用法代码示例。如果您正苦于以下问题:C# CustomAttribute.Resolve方法的具体用法?C# CustomAttribute.Resolve怎么用?C# CustomAttribute.Resolve使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CustomAttribute
的用法示例。
在下文中一共展示了CustomAttribute.Resolve方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: HasAttribute
private static bool HasAttribute(TypeDefinition declaringType, string attributeType, out CustomAttribute attribute)
{
foreach (CustomAttribute typeAttribute in declaringType.CustomAttributes)
{
if (typeAttribute.AttributeType.FullName == attributeType)
{
attribute = typeAttribute;
if (!attribute.IsResolved)
{
attribute.Resolve();
}
return true;
}
}
attribute = null;
return false;
}
示例2: IsAsyncAttribute
private static bool IsAsyncAttribute(CustomAttribute customAttribute, MethodDefinition method, TypeDefinition declaringType, out TypeDefinition stateMachineType)
{
stateMachineType = null;
if (customAttribute.AttributeType.FullName != "System.Runtime.CompilerServices.AsyncStateMachineAttribute")
{
return false;
}
customAttribute.Resolve();
if (customAttribute.ConstructorArguments.Count != 1 || customAttribute.ConstructorArguments[0].Type.FullName != "System.Type")
{
return false;
}
TypeReference typeReference = customAttribute.ConstructorArguments[0].Value as TypeReference;
if (typeReference == null)
{
return false;
}
TypeDefinition typeDef = typeReference.Resolve();
if (typeDef == null || typeDef.DeclaringType != declaringType || !typeDef.IsAsyncStateMachine())
{
return false;
}
stateMachineType = typeDef;
return true;
}