本文整理汇总了C#中Mono.Cecil.ModuleDefinition.ContainsAttribute方法的典型用法代码示例。如果您正苦于以下问题:C# ModuleDefinition.ContainsAttribute方法的具体用法?C# ModuleDefinition.ContainsAttribute怎么用?C# ModuleDefinition.ContainsAttribute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mono.Cecil.ModuleDefinition
的用法示例。
在下文中一共展示了ModuleDefinition.ContainsAttribute方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SelectMethods
private IEnumerable<MethodDefinition> SelectMethods(ModuleDefinition moduleDefinition, string excludeAttributeName)
{
var noLogAssembly = moduleDefinition.ContainsAttribute(excludeAttributeName);
if (noLogAssembly)
{
LogInfo(string.Format("Skipping '{0}' assembly due to {1} attribute", moduleDefinition.Name, excludeAttributeName));
return Enumerable.Empty<MethodDefinition>();
}
LogInfo(string.Format("Searching for Methods in assembly ({0}).", moduleDefinition.Name));
var definitions = new HashSet<MethodDefinition>(
moduleDefinition
.Types
.Where(x => x.IsClass && !x.ContainsAttribute(excludeAttributeName))
.SelectMany(x => x.Methods)
.Where(x => ValidMethod(moduleDefinition, excludeAttributeName, x))
);
// Remove NoLogAttribute
moduleDefinition.Types.SelectMany(x => x.Methods).ToList().ForEach(x => x.RemoveAttribute(excludeAttributeName));
moduleDefinition.Types.ToList().ForEach(x => x.RemoveAttribute(excludeAttributeName));
moduleDefinition.Assembly.RemoveAttribute(excludeAttributeName);
return definitions;
}