本文整理汇总了C#中IFilter.ExcludeByAttribute方法的典型用法代码示例。如果您正苦于以下问题:C# IFilter.ExcludeByAttribute方法的具体用法?C# IFilter.ExcludeByAttribute怎么用?C# IFilter.ExcludeByAttribute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IFilter
的用法示例。
在下文中一共展示了IFilter.ExcludeByAttribute方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetInstrumentableTypes
private static void GetInstrumentableTypes(IEnumerable<TypeDefinition> typeDefinitions, List<Class> classes, IFilter filter, string moduleName)
{
foreach (var typeDefinition in typeDefinitions)
{
if (typeDefinition.IsEnum) continue;
if (typeDefinition.IsInterface && typeDefinition.IsAbstract) continue;
var @class = new Class() { FullName = typeDefinition.FullName };
if (!filter.InstrumentClass(moduleName, @class.FullName))
{
@class.SkippedDueTo = SkippedMethod.Filter;
}
else if (filter.ExcludeByAttribute(typeDefinition))
{
@class.SkippedDueTo = SkippedMethod.Attribute;
}
var list = new List<string>();
if ([email protected]())
{
foreach (var methodDefinition in typeDefinition.Methods)
{
if (methodDefinition.Body != null && methodDefinition.Body.Instructions != null)
{
foreach (var instruction in methodDefinition.Body.Instructions)
{
if (instruction.SequencePoint != null)
{
list.Add(instruction.SequencePoint.Document.Url);
break;
}
}
}
}
}
// only instrument types that are not structs and have instrumentable points
if (!typeDefinition.IsValueType || list.Count > 0)
{
@class.Files = list.Distinct().Select(file => new File { FullPath = file }).ToArray();
classes.Add(@class);
}
if (typeDefinition.HasNestedTypes)
GetInstrumentableTypes(typeDefinition.NestedTypes, classes, filter, moduleName);
}
}
示例2: BuildMethod
private static Method BuildMethod(IEnumerable<File> files, IFilter filter, MethodDefinition methodDefinition, bool alreadySkippedDueToAttr)
{
var method = new Method();
method.Name = methodDefinition.FullName;
method.IsConstructor = methodDefinition.IsConstructor;
method.IsStatic = methodDefinition.IsStatic;
method.IsGetter = methodDefinition.IsGetter;
method.IsSetter = methodDefinition.IsSetter;
method.MetadataToken = methodDefinition.MetadataToken.ToInt32();
if (alreadySkippedDueToAttr || filter.ExcludeByAttribute(methodDefinition))
method.SkippedDueTo = SkippedMethod.Attribute;
else if (filter.ExcludeByFile(GetFirstFile(methodDefinition)))
method.SkippedDueTo = SkippedMethod.File;
var definition = methodDefinition;
method.FileRef = files.Where(x => x.FullPath == GetFirstFile(definition))
.Select(x => new FileRef() {UniqueId = x.UniqueId}).FirstOrDefault();
return method;
}
示例3: BuildPropertyMethods
private static void BuildPropertyMethods(ICollection<Method> methods, File[] files, IFilter filter, TypeDefinition typeDefinition)
{
foreach (var propertyDefinition in typeDefinition.Properties)
{
var skipped = filter.ExcludeByAttribute(propertyDefinition);
if (propertyDefinition.GetMethod != null && !propertyDefinition.GetMethod.IsAbstract)
{
var method = BuildMethod(files, filter, propertyDefinition.GetMethod, skipped);
methods.Add(method);
}
if (propertyDefinition.SetMethod != null && !propertyDefinition.SetMethod.IsAbstract)
{
var method = BuildMethod(files, filter, propertyDefinition.SetMethod, skipped);
methods.Add(method);
}
}
}
示例4: BuildMethod
private static Method BuildMethod(IEnumerable<File> files, IFilter filter, MethodDefinition methodDefinition, bool alreadySkippedDueToAttr, ICommandLine commandLine)
{
var method = new Method();
method.Name = methodDefinition.FullName;
method.IsConstructor = methodDefinition.IsConstructor;
method.IsStatic = methodDefinition.IsStatic;
method.IsGetter = methodDefinition.IsGetter;
method.IsSetter = methodDefinition.IsSetter;
method.MetadataToken = methodDefinition.MetadataToken.ToInt32();
if (alreadySkippedDueToAttr || filter.ExcludeByAttribute(methodDefinition))
method.MarkAsSkipped(SkippedMethod.Attribute);
else if (filter.ExcludeByFile(GetFirstFile(methodDefinition)))
method.MarkAsSkipped(SkippedMethod.File);
else if (commandLine.SkipAutoImplementedProperties && filter.IsAutoImplementedProperty(methodDefinition))
method.MarkAsSkipped(SkippedMethod.AutoImplementedProperty);
var definition = methodDefinition;
method.FileRef = files.Where(x => x.FullPath == GetFirstFile(definition))
.Select(x => new FileRef() {UniqueId = x.UniqueId}).FirstOrDefault();
return method;
}