[Mono-bugs] [Bug 32443][Nor] Changed - Assembly.LoadFrom ("gizmo.dll").CreateInstance ("gizmo").GetType().FullName allways returns System.Object and not a gizmo.

bugzilla-daemon@rocky.ximian.com bugzilla-daemon@rocky.ximian.com
25 Nov 2002 16:51:04 -0000

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 gkodinov@openlinksw.co.uk.


--- shadow/32443	Mon Nov 18 11:55:28 2002
+++ shadow/32443.tmp.30084	Mon Nov 25 11:51:04 2002
@@ -1,13 +1,13 @@
 Bug#: 32443
 Product: Mono/Runtime
 Version: unspecified
 OS: Red Hat 7.0
 OS Details: 
-Status: RESOLVED   
-Resolution: FIXED
+Status: REOPENED   
 Severity: Unknown
 Priority: Normal
 Component: misc
 AssignedTo: mono-bugs@ximian.com                            
 ReportedBy: gkodinov@openlinksw.co.uk               
 QAContact: mono-bugs@ximian.com
@@ -48,6 +48,31 @@
 InternalInvoke and the only info it gets is the method desc, so it uses 
 it to call mono_object_new.
 ------- Additional Comments From lupus@ximian.com  2002-11-18 11:55 -------
 Fixed in cvs. We noe throw an exception if the constructor is not
 found, just like it happens with the ms runtime.
+------- Additional Comments From gkodinov@openlinksw.co.uk  2002-11-25 11:51 -------
+Well, In MS.NET implementation it actually works !
+The logic behind it (as I understand it) is:
+By definition gizmo inherits System.Object.
+So the above definition for gizmo becomes:
+class gizmo : System.Object
+Since System.Object has a default zero-parameter public constructor 
+it get's inherited by the gizmo object.
+So :
+new gizmo() should be fully valid operation (and should return an 
+istance of the gizmo object, witch in itself is an instance of 
+System.Object, but <instance>.GetType() would return gizmo even if 
+the object was constructed by the System.Object constructor.
+As a result the above code should not generate an error (as I've 
+noted it does now) but should somehow make a new gizmo instance.
+I'm not persisting this for academic reasons - it's totally relevant 
+for process of deserializing object instances - there it can and 
+will call only the default (no params) constructor.