Update mcs/class/System.Core/System/TimeZoneInfo.cs
[mono.git] / mcs / class / IKVM.Reflection / ParameterInfo.cs
index 693c5cab8199b326a131653a815a309bfaca47e5..fa704ad764bcdbf4616e2f5626fdeeea9a66c5cf 100644 (file)
@@ -59,6 +59,7 @@ namespace IKVM.Reflection
                public abstract int Position { get; }
                public abstract object RawDefaultValue { get; }
                public abstract CustomModifiers __GetCustomModifiers();
+               public abstract bool __TryGetFieldMarshal(out FieldMarshal fieldMarshal);
                public abstract MemberInfo Member { get; }
                public abstract int MetadataToken { get; }
                internal abstract Module Module { get; }
@@ -107,10 +108,67 @@ namespace IKVM.Reflection
                {
                        return CustomAttributeData.__GetCustomAttributes(this, attributeType, inherit);
                }
+       }
+
+       sealed class ParameterInfoWrapper : ParameterInfo
+       {
+               private readonly MemberInfo member;
+               private readonly ParameterInfo forward;
+
+               internal ParameterInfoWrapper(MemberInfo member, ParameterInfo forward)
+               {
+                       this.member = member;
+                       this.forward = forward;
+               }
+
+               public override string Name
+               {
+                       get { return forward.Name; }
+               }
+
+               public override Type ParameterType
+               {
+                       get { return forward.ParameterType; }
+               }
+
+               public override ParameterAttributes Attributes
+               {
+                       get { return forward.Attributes; }
+               }
+
+               public override int Position
+               {
+                       get { return forward.Position; }
+               }
+
+               public override object RawDefaultValue
+               {
+                       get { return forward.RawDefaultValue; }
+               }
+
+               public override CustomModifiers __GetCustomModifiers()
+               {
+                       return forward.__GetCustomModifiers();
+               }
+
+               public override bool __TryGetFieldMarshal(out FieldMarshal fieldMarshal)
+               {
+                       return forward.__TryGetFieldMarshal(out fieldMarshal);
+               }
+
+               public override MemberInfo Member
+               {
+                       get { return member; }
+               }
+
+               public override int MetadataToken
+               {
+                       get { return forward.MetadataToken; }
+               }
 
-               internal virtual IList<CustomAttributeData> GetCustomAttributesData(Type attributeType)
+               internal override Module Module
                {
-                       return this.Module.GetCustomAttributes(this.MetadataToken, attributeType);
+                       get { return member.Module; }
                }
        }
 }