[Mono-devel-list] Re: [Mono-patches] r45553 - trunk/mcs/class/corlib/System.Reflection
Carlos Alberto Cortez
calberto.cortez at gmail.com
Tue Jun 7 01:57:11 EDT 2005
Hey Martin,
thanks for the info.
I will try to commit this patch when the problem is fixed.
Carlos.
El mar, 07-06-2005 a las 05:37 +0200, Martin Baulig escribió:
> Hi,
>
> please do not commit such patches to corlib without first testing them.
>
> There is an open bug report (#75136) about this issue, but we can't just
> keep the build broken until that's fixed.
>
> Thanks,
> Martin
>
> On Mon, 2005-06-06 at 20:14 -0400, Carlos Alberto Cortes wrote:
> > Author: calberto
> > Date: 2005-06-06 20:14:13 -0400 (Mon, 06 Jun 2005)
> > New Revision: 45553
> >
> > Modified:
> > trunk/mcs/class/corlib/System.Reflection/ChangeLog
> > trunk/mcs/class/corlib/System.Reflection/CustomAttributeData.cs
> > trunk/mcs/class/corlib/System.Reflection/CustomAttributeNamedArgument.cs
> > trunk/mcs/class/corlib/System.Reflection/CustomAttributeTypedArgument.cs
> > Log:
> > 2005-06-07 Carlos Alberto Cortez <calberto.cortez at gmail.com>
> >
> > * CustomAttributeData.cs: Implemented.
> >
> > * CustomAttributeDataNamedArgument.cs: Implemented.
> >
> > * CustomAttrbuteDataTypedArgument.cs: Implemented.
> >
> >
> >
> > Modified: trunk/mcs/class/corlib/System.Reflection/ChangeLog
> > ===================================================================
> > --- trunk/mcs/class/corlib/System.Reflection/ChangeLog 2005-06-07 00:12:21 UTC (rev 45552)
> > +++ trunk/mcs/class/corlib/System.Reflection/ChangeLog 2005-06-07 00:14:13 UTC (rev 45553)
> > @@ -1,3 +1,11 @@
> > +2005-06-07 Carlos Alberto Cortez <calberto.cortez at gmail.com>
> > +
> > + * CustomAttributeData.cs: Implemented.
> > +
> > + * CustomAttributeDataNamedArgument.cs: Implemented.
> > +
> > + * CustomAttrbuteDataTypedArgument.cs: Implemented.
> > +
> > 2005-06-06 Zoltan Varga <vargaz at freemail.hu>
> >
> > * Assembly.cs ExceptionHandlingClause.cs: Fix build.
> >
> > Modified: trunk/mcs/class/corlib/System.Reflection/CustomAttributeData.cs
> > ===================================================================
> > --- trunk/mcs/class/corlib/System.Reflection/CustomAttributeData.cs 2005-06-07 00:12:21 UTC (rev 45552)
> > +++ trunk/mcs/class/corlib/System.Reflection/CustomAttributeData.cs 2005-06-07 00:14:13 UTC (rev 45553)
> > @@ -3,6 +3,7 @@
> > //
> > // Author:
> > // Zoltan Varga (vargaz at gmail.com)
> > +// Carlos Alberto Cortez (calberto.cortez at gmail.com)
> > //
> > // Copyright (C) 2004 Novell, Inc (http://www.novell.com)
> > //
> > @@ -32,6 +33,7 @@
> > using System.Collections.Generic;
> > using System.Runtime.CompilerServices;
> > using System.Runtime.InteropServices;
> > +using System.Text;
> >
> > namespace System.Reflection {
> >
> > @@ -39,47 +41,87 @@
> > [ComVisible (true)]
> > #endif
> > public sealed class CustomAttributeData {
> > + ConstructorInfo ctorInfo;
> > + IList<CustomAttributeTypedArgument> ctorArgs;
> > + IList<CustomAttributeNamedArgument> namedArgs;
> >
> > - [MonoTODO]
> > + internal CustomAttributeData (ConstructorInfo ctorInfo, object [] ctorArgs, object [] namedArgs)
> > + {
> > + this.ctorInfo = ctorInfo;
> > +
> > + this.ctorArgs = Array.AsReadOnly<CustomAttributeTypedArgument>
> > + (ctorArgs != null ? UnboxValues<CustomAttributeTypedArgument> (ctorArgs) : new CustomAttributeTypedArgument [0]);
> > +
> > + this.namedArgs = Array.AsReadOnly<CustomAttributeNamedArgument>
> > + (namedArgs != null ? UnboxValues<CustomAttributeNamedArgument> (namedArgs) : new CustomAttributeNamedArgument [0]);
> > + }
> > +
> > public ConstructorInfo Constructor {
> > get {
> > - throw new NotImplementedException ();
> > + return ctorInfo;
> > }
> > }
> >
> > - [MonoTODO]
> > public IList<CustomAttributeTypedArgument> ConstructorArguments {
> > get {
> > - throw new NotImplementedException ();
> > + return ctorArgs;
> > }
> > }
> >
> > - [MonoTODO]
> > public IList<CustomAttributeNamedArgument> NamedArguments {
> > get {
> > - throw new NotImplementedException ();
> > + return namedArgs;
> > }
> > }
> >
> > - [MonoTODO]
> > - public static IList<CustomAttributeData> GetCustomAttributes (Assembly yarget) {
> > - throw new NotImplementedException ();
> > + public static IList<CustomAttributeData> GetCustomAttributes (Assembly target) {
> > + return MonoCustomAttrs.GetCustomAttributesData (target);
> > }
> >
> > - [MonoTODO]
> > public static IList<CustomAttributeData> GetCustomAttributes (MemberInfo target) {
> > - throw new NotImplementedException ();
> > + return MonoCustomAttrs.GetCustomAttributesData (target);
> > }
> >
> > - [MonoTODO]
> > public static IList<CustomAttributeData> GetCustomAttributes (Module target) {
> > - throw new NotImplementedException ();
> > + return MonoCustomAttrs.GetCustomAttributesData (target);
> > }
> >
> > - [MonoTODO]
> > public static IList<CustomAttributeData> GetCustomAttributes (ParameterInfo target) {
> > - throw new NotImplementedException ();
> > + return MonoCustomAttrs.GetCustomAttributesData (target);
> > }
> > +
> > + public override string ToString ()
> > + {
> > + StringBuilder sb = new StringBuilder ();
> > +
> > + sb.Append ("[" + ctorInfo.DeclaringType.Name + " (");
> > + for (int i = 0; i < ctorArgs.Count; i++) {
> > + sb.Append (ctorArgs [i].ToString ());
> > + if (i + 1 < ctorArgs.Count)
> > + sb.Append (", ");
> > + }
> > +
> > + if (namedArgs.Count > 0)
> > + sb.Append (", ");
> > +
> > + for (int j = 0; j < namedArgs.Count; j++) {
> > + sb.Append (namedArgs [j].ToString ());
> > + if (j + 1 < namedArgs.Count)
> > + sb.Append (", ");
> > + }
> > + sb.AppendFormat (")]");
> > +
> > + return sb.ToString ();
> > + }
> > +
> > + static T [] UnboxValues<T> (object [] values)
> > + {
> > + T [] retval = new T [values.Length];
> > + for (int i = 0; i < values.Length; i++)
> > + retval [i] = (T) values [i];
> > +
> > + return retval;
> > + }
> > }
> >
> > }
> >
> > Modified: trunk/mcs/class/corlib/System.Reflection/CustomAttributeNamedArgument.cs
> > ===================================================================
> > --- trunk/mcs/class/corlib/System.Reflection/CustomAttributeNamedArgument.cs 2005-06-07 00:12:21 UTC (rev 45552)
> > +++ trunk/mcs/class/corlib/System.Reflection/CustomAttributeNamedArgument.cs 2005-06-07 00:14:13 UTC (rev 45553)
> > @@ -3,6 +3,7 @@
> > //
> > // Author:
> > // Zoltan Varga (vargaz at gmail.com)
> > +// Carlos Alberto Cortez (calberto.cortez at gmail.com)
> > //
> > // Copyright (C) 2004 Novell, Inc (http://www.novell.com)
> > //
> > @@ -37,20 +38,31 @@
> > [ComVisible (true)]
> > #endif
> > public struct CustomAttributeNamedArgument {
> > + CustomAttributeTypedArgument typedArgument;
> > + MemberInfo memberInfo;
> >
> > - [MonoTODO]
> > + internal CustomAttributeNamedArgument (MemberInfo memberInfo, object typedArgument)
> > + {
> > + this.memberInfo = memberInfo;
> > + this.typedArgument = (CustomAttributeTypedArgument) typedArgument;
> > + }
> > +
> > public MemberInfo MemberInfo {
> > get {
> > - throw new NotImplementedException ();
> > + return memberInfo;
> > }
> > }
> >
> > - [MonoTODO]
> > public CustomAttributeTypedArgument TypedValue {
> > get {
> > - throw new NotImplementedException ();
> > + return typedArgument;
> > }
> > }
> > +
> > + public override string ToString ()
> > + {
> > + return memberInfo.Name + " = " + typedArgument.ToString ();
> > + }
> > }
> >
> > }
> >
> > Modified: trunk/mcs/class/corlib/System.Reflection/CustomAttributeTypedArgument.cs
> > ===================================================================
> > --- trunk/mcs/class/corlib/System.Reflection/CustomAttributeTypedArgument.cs 2005-06-07 00:12:21 UTC (rev 45552)
> > +++ trunk/mcs/class/corlib/System.Reflection/CustomAttributeTypedArgument.cs 2005-06-07 00:14:13 UTC (rev 45553)
> > @@ -3,6 +3,7 @@
> > //
> > // Author:
> > // Zoltan Varga (vargaz at gmail.com)
> > +// Carlos Alberto Cortez (calberto.cortez at gmail.com)
> > //
> > // Copyright (C) 2004 Novell, Inc (http://www.novell.com)
> > //
> > @@ -37,20 +38,37 @@
> > [ComVisible (true)]
> > #endif
> > public struct CustomAttributeTypedArgument {
> > + Type argumentType;
> > + object value;
> >
> > - [MonoTODO]
> > + internal CustomAttributeTypedArgument (Type argumentType, object value)
> > + {
> > + this.argumentType = argumentType;
> > + this.value = value;
> > + }
> > +
> > public Type ArgumentType {
> > get {
> > - throw new NotImplementedException ();
> > + return argumentType;
> > }
> > }
> >
> > - [MonoTODO]
> > public object Value {
> > get {
> > - throw new NotImplementedException ();
> > + return value;
> > }
> > }
> > +
> > + public override string ToString ()
> > + {
> > + string val = value.ToString ();
> > + if (argumentType == typeof (string))
> > + return "\"" + val + "\"";
> > + if (argumentType == typeof (Type))
> > + return "typeof (" + val + ")";
> > +
> > + return val;
> > + }
> > }
> >
> > }
> >
> > _______________________________________________
> > Mono-patches maillist - Mono-patches at lists.ximian.com
> > http://lists.ximian.com/mailman/listinfo/mono-patches
> >
>
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
More information about the Mono-devel-list
mailing list