// // Author: // Jb Evain (jbevain@gmail.com) // // Copyright (c) 2008 - 2015 Jb Evain // Copyright (c) 2008 - 2011 Novell, Inc. // // Licensed under the MIT/X11 license. // using System; using Mono.Collections.Generic; namespace Mono.Cecil { public interface ICustomAttributeProvider : IMetadataTokenProvider { Collection CustomAttributes { get; } bool HasCustomAttributes { get; } } static partial class Mixin { public static bool GetHasCustomAttributes ( this ICustomAttributeProvider self, ModuleDefinition module) { return module.HasImage () && module.Read (self, (provider, reader) => reader.HasCustomAttributes (provider)); } public static Collection GetCustomAttributes ( this ICustomAttributeProvider self, ref Collection variable, ModuleDefinition module) { return module.HasImage () ? module.Read (ref variable, self, (provider, reader) => reader.ReadCustomAttributes (provider)) : variable = new Collection(); } } }