[Mono-bugs] [Bug 381435] Castle project (MonoRail and Windsor) stack with 1. 9 exceptions

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Fri Dec 19 09:21:16 EST 2008


User silk at boktor.net added comment

Grzegorz Sobański <silk at boktor.net> changed:

           What    |Removed                                         |Added
                 CC|                                                |silk at boktor.net
             Status|NEEDINFO                                        |NEW
      Info Provider|patrick at villadays.com                           |

--- Comment #6 from Grzegorz Sobański <silk at boktor.net>  2008-12-19 07:21:15 MST ---
Nathan O'Sullivan has reported a new bug to castle, with a detailed reason for
this failure, and a very simple reproducible test case.
I checked, it is still valid for 2.2 branch.

To compile: gmcs -r:Castle.Windsor.dll Test.cs
You can get castle stack for example from:

I am quoting the original IOC-ISSUE-133 here

Somewhere between RC3 and HEAD the MicroKernel stopped working properly on Mono
1.9+. HEAD still works on the older 1.2.x releases of Mono.

I've attached a sample program which demonstrates the problem. After poking
through the mono source it can be seen that for some reason, Mono 1.9+ has
implemented the System.ComponentModel.TypeDescriptor.CanConvertFrom() to claim
that it can convert a string to interface (even though the implementation is
incapable of doing so)

This breaks the MicroKernel's method
ComponentModelConverter.CanHandleType(Type). The end result of this is that on
Mono 1.9+ the MicroKernel treats any dependencies on an interface as a
"DependencyByKey" instead of "DependencyByService".

public override bool CanHandleType(Type type)
TypeConverter converter = TypeDescriptor.GetConverter(type);
return (converter != null && converter.CanConvertFrom(typeof(String)));

I do not have the understanding of when this should succeed; hopefully it
should never succeed when type.IsInterface ? I've attached a tiny patch to that
effect, but perhaps there are some circumstances when interfaces can be
converted from strings that I dont know of.

I've also attached a basic test program; on Mono 1.9+ and Castle HEAD without
this patch this program will throw an exception. The program works with Castle
HEAD as-is on Windows or Mono 1.2.x

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