[Mono-bugs] [Bug 442031] Type information is not lazily initialized

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Thu Nov 6 05:20:25 EST 2008


https://bugzilla.novell.com/show_bug.cgi?id=442031

User gert.driesen at pandora.be added comment
https://bugzilla.novell.com/show_bug.cgi?id=442031#c3


Gert Driesen <gert.driesen at pandora.be> changed:

           What    |Removed                                         |Added
----------------------------------------------------------------------------
             Status|RESOLVED                                        |REOPENED
         Resolution|WONTFIX                                         |




--- Comment #3 from Gert Driesen <gert.driesen at pandora.be>  2008-11-06 03:20:25 MST ---
The use case I had in mind was a plugin assembly containing some plugins that
use commercial assemblies and some plugins that use non-commercial assemblies.

Of course, the non-commercial assemblies can be shipped together with the
plugin assembly, but the commercial ones can't.

Now, what happens if you use reflection to discover the plugin types in that
assembly:

On MS this works just fine. You'll only get an exception if you attempt to
instantiate one the plugin types that references a non-available assembly. As
long as you're not instantiating these everything works fine.

On Mono, you'll get a ReflectionTypeLoadException for even attempting to the
types of the plugin assembly.

So the problem is that Mono immediately fails when accessing a type that
contains fields or methods that reference an assembly that is not available.

If you could postpone instantiating the types of all fields / methods of a
given type until they are actually used, then that should clearly improve
performance (and memory usage) quite a lot.

I understand that this is not a simple task, but wouldn't it be better to keep
this on that radar anyway?


-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the mono-bugs mailing list