private void DecorateDirectlyAttributed(MethodDecoratorEx.Fody.MethodDecorator decorator) { var markerTypeDefinitions = this.FindMarkerTypes(); var methods = this.FindAttributedMethods(markerTypeDefinitions.ToArray()); foreach (var x in methods) { decorator.Decorate(x.TypeDefinition, x.MethodDefinition, x.CustomAttribute); } }
private void DecorateAttributedByImplication(MethodDecoratorEx.Fody.MethodDecorator decorator) { var inderectAttributes = this.ModuleDefinition.CustomAttributes .Concat(this.ModuleDefinition.Assembly.CustomAttributes) .Where(x => x.AttributeType.Name.StartsWith("IntersectMethodsMarkedByAttribute")) .Select(ToHostAttributeMapping) .Where(x => x != null) .ToArray(); foreach (var inderectAttribute in inderectAttributes) { var methods = this.FindAttributedMethods(inderectAttribute.AttribyteTypes); foreach (var x in methods) { decorator.Decorate(x.TypeDefinition, x.MethodDefinition, inderectAttribute.HostAttribute); } } }