https://bugzilla.novell.com/show_bug.cgi?id=381435
User [email protected] added comment https://bugzilla.novell.com/show_bug.cgi?id=381435#c6 Grzegorz Sobański <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] Status|NEEDINFO |NEW Info Provider|[email protected] | --- Comment #6 from Grzegorz Sobański <[email protected]> 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: http://builds.castleproject.org/cruise/DownloadBuild.castle?number=998 I am quoting the original IOC-ISSUE-133 here (http://support.castleproject.org/projects/IOC/issues/view/IOC-ISSUE-133): 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. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
