[Mono-bugs] [Bug 38957][Maj] Changed - Reflection does not support case-insensitve binding
bugzilla-daemon@rocky.ximian.com
bugzilla-daemon@rocky.ximian.com
Sat, 8 Mar 2003 14:31:44 -0500 (EST)
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by ximian-bugzilla@thebap.org.
http://bugzilla.ximian.com/show_bug.cgi?id=38957
--- shadow/38957 Thu Mar 6 23:36:09 2003
+++ shadow/38957.tmp.19272 Sat Mar 8 14:31:44 2003
@@ -89,6 +89,36 @@
Is more information needed to be able to pinpoint this issue ?
------- Additional Comments From gonzalo@ximian.com 2003-03-06 23:36 -------
No, it's just that we need 36 hours long days ;-)
We'll soon get to fix this.
Btw, I encourage you to try fixing it in the meanwhile :-)
+
+------- Additional Comments From ximian-bugzilla@thebap.org 2003-03-08 14:31 -------
+This issue requires an update to MonoType.cs and icall.c
+
+In MonoType.cs GetMethodImpl() and GetPropertyImpl() need to be
+updated.
+
+Add
+
+ bool ignoreCase = (bindingAttr & BindingFlags.IgnoreCase) != 0;
+
+then update
+
+ if (m.Name != name)
+
+to
+
+ if (String.Compare (m.Name, name, ignoreCase) != 0)
+
+
+Please note that the implementation of InvokeMember is correct and
+does respect the IgnoreCase flag for methods and properties, however
+it does not work correctly for fields or events because it uses the
+internal call methods GetEvent() and GetField() which do not.
+
+To fix the Events and Fields the icall.c file needs updating. The
+ves_icall_MonoType_GetEvent() and ves_icall_Type_GetField() methods
+do not respect the binding flags when they compare the name of the
+field or event.
+