~ubuntu-branches/ubuntu/oneiric/monodevelop/oneiric

« back to all changes in this revision

Viewing changes to contrib/Mono.Cecil/Mono.Cecil/Mono.Cecil/ICustomAttributeProvider.cs

  • Committer: Bazaar Package Importer
  • Author(s): Jo Shields
  • Date: 2011-06-27 17:03:13 UTC
  • mto: (1.8.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 54.
  • Revision ID: james.westby@ubuntu.com-20110627170313-6cvz3s19x6e9hqe9
ImportĀ upstreamĀ versionĀ 2.5.92+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
// Author:
5
5
//   Jb Evain (jbevain@gmail.com)
6
6
//
7
 
// (C) 2005 Jb Evain
 
7
// Copyright (c) 2008 - 2010 Jb Evain
8
8
//
9
9
// Permission is hereby granted, free of charge, to any person obtaining
10
10
// a copy of this software and associated documentation files (the
26
26
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27
27
//
28
28
 
 
29
using System;
 
30
 
 
31
using Mono.Collections.Generic;
 
32
 
29
33
namespace Mono.Cecil {
30
34
 
31
 
        using System.Reflection;
32
 
 
33
 
        public interface ICustomAttributeProvider {
34
 
 
35
 
                CustomAttributeCollection CustomAttributes { get; }
 
35
        public interface ICustomAttributeProvider : IMetadataTokenProvider {
 
36
 
 
37
                Collection<CustomAttribute> CustomAttributes { get; }
36
38
 
37
39
                bool HasCustomAttributes { get; }
38
40
        }
 
41
 
 
42
        static partial class Mixin {
 
43
 
 
44
                public static bool GetHasCustomAttributes (
 
45
                        this ICustomAttributeProvider self,
 
46
                        ModuleDefinition module)
 
47
                {
 
48
                        return module.HasImage ()
 
49
                                ? module.Read (self, (provider, reader) => reader.HasCustomAttributes (provider))
 
50
                                : false;
 
51
                }
 
52
 
 
53
                public static Collection<CustomAttribute> GetCustomAttributes (
 
54
                        this ICustomAttributeProvider self,
 
55
                        ModuleDefinition module)
 
56
                {
 
57
                        return module.HasImage ()
 
58
                                ? module.Read (self, (provider, reader) => reader.ReadCustomAttributes (provider))
 
59
                                : new Collection<CustomAttribute> ();
 
60
                }
 
61
        }
39
62
}