X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2Fcorlib%2FSystem.Reflection%2FModule.cs;h=75bfc1fc74b81ec166fe66f459e7af567465e296;hb=360f2deff8855e3e6ce62b61dcdcd9e1b097ded8;hp=3e3c66cbb8d3730e2d18eab4bed6811b0e326f92;hpb=9b3232e7df30dc895bf1d033196d106ae555c4a0;p=mono.git diff --git a/mcs/class/corlib/System.Reflection/Module.cs b/mcs/class/corlib/System.Reflection/Module.cs index 3e3c66cbb8d..75bfc1fc74b 100644 --- a/mcs/class/corlib/System.Reflection/Module.cs +++ b/mcs/class/corlib/System.Reflection/Module.cs @@ -48,13 +48,13 @@ namespace System.Reflection { [Serializable] [ClassInterfaceAttribute (ClassInterfaceType.None)] [StructLayout (LayoutKind.Sequential)] -#if NET_4_0 || MOONLIGHT || MOBILE - public abstract class Module : ISerializable, ICustomAttributeProvider, _Module { +#if MOBILE + public abstract class Module : ISerializable, ICustomAttributeProvider { #else - public partial class Module : ISerializable, ICustomAttributeProvider, _Module { + public abstract class Module : ISerializable, ICustomAttributeProvider, _Module { #endif - public static readonly TypeFilter FilterTypeName; - public static readonly TypeFilter FilterTypeNameIgnoreCase; + public static readonly TypeFilter FilterTypeName = new TypeFilter (filter_by_type_name); + public static readonly TypeFilter FilterTypeNameIgnoreCase = new TypeFilter (filter_by_type_name_ignore_case); #pragma warning disable 649 internal IntPtr _impl; /* a pointer to a MonoImage */ @@ -68,18 +68,8 @@ namespace System.Reflection { const BindingFlags defaultBindingFlags = BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance; - - static Module () { - FilterTypeName = new TypeFilter (filter_by_type_name); - FilterTypeNameIgnoreCase = new TypeFilter (filter_by_type_name_ignore_case); - } - -#if NET_4_0 || MOONLIGHT || MOBILE protected -#else - internal -#endif Module () { } @@ -132,10 +122,7 @@ namespace System.Reflection { [SecurityPermission (SecurityAction.LinkDemand, SerializationFormatter = true)] public virtual void GetObjectData (SerializationInfo info, StreamingContext context) { - if (info == null) - throw new ArgumentNullException ("info"); - - UnitySerializationHolder.GetModuleData (this, info, context); + throw new NotImplementedException (); } [ComVisible (true)] @@ -225,18 +212,18 @@ namespace System.Reflection { private static bool filter_by_type_name (Type m, object filterCriteria) { string s = (string)filterCriteria; - if (s.EndsWith ("*")) - return m.Name.StartsWith (s.Substring (0, s.Length - 1)); - else - return m.Name == s; + if (s.Length > 0 && s [s.Length - 1] == '*') + return m.Name.StartsWithOrdinalUnchecked (s.Substring (0, s.Length - 1)); + + return m.Name == s; } private static bool filter_by_type_name_ignore_case (Type m, object filterCriteria) { string s = (string)filterCriteria; - if (s.EndsWith ("*")) - return m.Name.ToLower ().StartsWith (s.Substring (0, s.Length - 1).ToLower ()); - else - return String.Compare (m.Name, s, true) == 0; + if (s.Length > 0 && s [s.Length - 1] == '*') + return m.Name.StartsWith (s.Substring (0, s.Length - 1), StringComparison.OrdinalIgnoreCase); + + return string.Compare (m.Name, s, StringComparison.OrdinalIgnoreCase) == 0; } [MethodImplAttribute (MethodImplOptions.InternalCall)] @@ -269,6 +256,7 @@ namespace System.Reflection { [MethodImplAttribute (MethodImplOptions.InternalCall)] internal static extern void GetPEKind (IntPtr module, out PortableExecutableKinds peKind, out ImageFileMachine machine); +#if !MOBILE void _Module.GetIDsOfNames ([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId) { throw new NotImplementedException (); @@ -289,8 +277,8 @@ namespace System.Reflection { { throw new NotImplementedException (); } +#endif -#if NET_4_0 public override bool Equals (object o) { return o == (object) this; @@ -319,9 +307,7 @@ namespace System.Reflection { return !left.Equals (right); } -#endif -#if NET_4_0 || MOONLIGHT || MOBILE public virtual Assembly Assembly { get { throw CreateNIE (); } @@ -456,7 +442,9 @@ namespace System.Reflection { { throw CreateNIE (); } -#endif + public virtual IEnumerable CustomAttributes { + get { return GetCustomAttributesData (); } + } } }