// // Author: // Jb Evain (jbevain@gmail.com) // // Copyright (c) 2008 - 2015 Jb Evain // Copyright (c) 2008 - 2011 Novell, Inc. // // Licensed under the MIT/X11 license. // namespace MonoFN.Cecil { public interface IMarshalInfoProvider : IMetadataTokenProvider { bool HasMarshalInfo { get; } MarshalInfo MarshalInfo { get; set; } } internal static partial class Mixin { public static bool GetHasMarshalInfo(this IMarshalInfoProvider self, ModuleDefinition module) { return module.HasImage() && module.Read(self, (provider, reader) => reader.HasMarshalInfo(provider)); } public static MarshalInfo GetMarshalInfo(this IMarshalInfoProvider self, ref MarshalInfo variable, ModuleDefinition module) { return module.HasImage() ? module.Read(ref variable, self, (provider, reader) => reader.ReadMarshalInfo(provider)) : null; } } }