Good call Ivan. The LoadAssembly apparently was doing the trick! Thanks for the help.
BTW, was this the right mailing list for this question? Is there a users mailing list? 2009/3/18 Ivan Porto Carrero <i...@flanders.co.nz> > If so turn off shadow copy assemblies under Resharper -> options -> unit > testing > > On Wed, Mar 18, 2009 at 8:22 PM, Ivan Porto Carrero > <i...@flanders.co.nz>wrote: > >> Are you using resharper for your unit tests? >> >> >> >> 2009/3/18 Nathan Stott <nrst...@gmail.com> >> >>> I dont know if this helps, but this is the full output of the test: >>> >>> ComponentLoaderRegisteringComponentContext.ShouldRegisterComponent : >>> Failed CT_INIT: Object >>> >>> UPDATED: Object >>> CreateInstanceSingleton affected=1 rules=0 >>> >>> UPDATED: Object >>> CreateInstanceSingleton affected=1 rules=0 >>> CT_INIT: File::Constants >>> CT_INIT: IO >>> CT_INIT: File >>> >>> UPDATED: Object >>> CreateInstanceSingleton affected=1 rules=0 >>> MT_INIT: Kernel >>> MT_INIT: Object >>> MT_INIT: <anonymous> >>> MT_INIT: Module >>> MT_INIT: Class >>> MT_INIT: <anonymous> >>> >>> UPDATED: Object >>> CreateInstanceSingleton affected=5 rules=1 >>> MT_INIT: <anonymous> >>> >>> LOADER: Loading assembly 'Motorpool.Calendar.Web.Test, Version=1.0.0.0, >>> Culture=neutral, PublicKeyToken=null' and type '' >>> MT_INIT: Symbol >>> MT_INIT: Enumerable >>> MT_INIT: Hash >>> MT_INIT: Microsoft::Scripting::Actions::TypeTracker >>> MT_INIT: Microsoft::Scripting::Actions::TypeGroup >>> >>> System.InvalidOperationException: can't convert >>> Castle::Core::ComponentModel into Castle::Core::ComponentModel >>> at CallSite.Target(Closure , CallSite , RubyMethodScope , Object , Object >>> ) >>> at System.Dynamic.UpdateDelegates.UpdateAndExecute3<T0,T1,T2,TRet>( >>> CallSite site, T0 arg0, T1 arg1, T2 arg2) in >>> C:\git\ironruby\ndp\fx\src\Core\Microsoft\Scripting\Actions\UpdateDelegates.Generated.cs: >>> line 509 >>> at ℑℜ;component;;10;(Closure , Object , Proc , Object ) >>> at CallSite.Target(Closure , CallSite , RubyScope , Object , Hash ) >>> at System.Dynamic.UpdateDelegates.UpdateAndExecute3<T0,T1,T2,TRet>( >>> CallSite site, T0 arg0, T1 arg1, T2 arg2) in >>> C:\git\ironruby\ndp\fx\src\Core\Microsoft\Scripting\Actions\UpdateDelegates.Generated.cs: >>> line 509 >>> at ℑℜ;#;;0;(Closure , Scope , LanguageContext ) >>> at Microsoft.Scripting.Runtime.LegacyScriptCode.Run() in >>> C:\git\ironruby\Merlin\Main\Runtime\Microsoft.Scripting\Runtime\LegacyScriptCode.cs: >>> line 43 >>> at Microsoft.Scripting.SourceUnit.Execute() in >>> C:\git\ironruby\Merlin\Main\Runtime\Microsoft.Scripting\SourceUnit.cs: line >>> 239 >>> at Microsoft.Scripting.Hosting.ScriptSource.Execute() in >>> C:\git\ironruby\Merlin\Main\Runtime\Microsoft.Scripting\Hosting\ScriptSource.cs: >>> line 138 >>> at Motorpool.Calendar.Service.ComponentLoader.Load(IWindsorContainer >>> container, TextReader reader) in ComponentLoader.cs: line 64 >>> at Motorpool.Calendar.Web.Test >>> .ComponentLoaderRegisteringComponentContext.ShouldRegisterComponent() in >>> ComponentLoaderRegisteringComponentContext.cs: line 26 >>> >>> On Wed, Mar 18, 2009 at 1:55 PM, Nathan Stott <nrst...@gmail.com> wrote: >>> >>>> I tried that and no luck. >>>> It doesn't seem that the assembly is not being loaded properly. I'm >>>> able to use methods on the objects fine in the script. However, it is that >>>> last call to the $container.Register(ComponentRegistration.new(model)) >>>> where for some reason it won't work. >>>> >>>> ComponentRegistration.new() takes a ComponentModel. The error seems to >>>> indicate that it is receiving a ComponentModel even with the same namespace >>>> prefixes but somehow it's not able to use it. >>>> >>>> 2009/3/18 Ivan Porto Carrero <i...@flanders.co.nz> >>>> >>>> You can try using the LoadAssembly method on the runtime object >>>>> >>>>> runtime.LoadAssembly(typeof(IWindsorContainer).Assembly); >>>>> >>>>> that should require the assembly a little nicer >>>>> >>>>> I think you can also use load_assembly 'Castle.Windsor' >>>>> >>>>> >>>>> http://github.com/casualjim/ninject-dynamic/blob/0b531d9e3ae46cc3e8549c9cfc078a8c27e5dda7/src/Ninject.Dynamic/RubyEngine.cs#L166 >>>>> >>>>> http://github.com/casualjim/ninject-dynamic/blob/0b531d9e3ae46cc3e8549c9cfc078a8c27e5dda7/src/Ninject.Dynamic/RubyEngine.cs#L142 >>>>> >>>>> http://github.com/casualjim/ninject-dynamic/blob/0b531d9e3ae46cc3e8549c9cfc078a8c27e5dda7/src/Ninject.Dynamic/RubyEngine.cs#L90 >>>>> >>>>> >>>>> >>>>> 2009/3/18 Nathan Stott <nrst...@gmail.com> >>>>> >>>>> I'm using the hosting API. >>>>>> This is the entire method: >>>>>> public void Load(IWindsorContainer container, TextReader reader) >>>>>> { >>>>>> var runtime = Ruby.CreateRuntime(); >>>>>> ScriptEngine engine = Ruby.GetEngine(runtime); >>>>>> var ctx = Ruby.GetExecutionContext(runtime); >>>>>> ctx.DefineReadOnlyGlobalVariable("container", container); >>>>>> >>>>>> string header = >>>>>> @"require 'Castle.Windsor' >>>>>> require 'Castle.MicroKernel' >>>>>> require 'Castle.Core' >>>>>> >>>>>> ComponentRegistration = >>>>>> Castle::MicroKernel::Registration::ComponentRegistration >>>>>> ComponentModel = Castle::Core::ComponentModel >>>>>> Parameter = Castle::MicroKernel::Registration::Parameter >>>>>> Component = Castle::MicroKernel::Registration::Component >>>>>> >>>>>> def component(options) >>>>>> throw :classIsRequired if !options.has_key?(:class) >>>>>> klass = options[:class].to_clr_type >>>>>> if options.has_key?(:service) >>>>>> service = options[:service].to_clr_type >>>>>> else >>>>>> service = klass >>>>>> end >>>>>> if options.has_key?(:name) >>>>>> name = options[:name] >>>>>> else >>>>>> name = klass.class.name.underscore.lowercase >>>>>> end >>>>>> model = ComponentModel.new(name, service, klass) >>>>>> if options.has_key?(:parameters) >>>>>> parameters = options[:parameters] >>>>>> parameters.each do |p| >>>>>> model.Parameters.Add(p.key, p.value) >>>>>> end >>>>>> end >>>>>> $container.Register(ComponentRegistration.new(model)) >>>>>> end"; >>>>>> >>>>>> ScriptSource headerSource = >>>>>> engine.CreateScriptSourceFromString(header); >>>>>> headerSource.Execute(); >>>>>> >>>>>> string containerScript = reader.ReadToEnd(); >>>>>> ScriptSource source = >>>>>> engine.CreateScriptSourceFromString(containerScript); >>>>>> source.Execute(); >>>>>> } >>>>>> } >>>>>> >>>>>> 2009/3/18 Tomas Matousek <tomas.matou...@microsoft.com> >>>>>> >>>>>>> How do you run this script? From command line (ir.exe script.rb) or >>>>>>> do you use hosting API? >>>>>>> >>>>>>> >>>>>>> >>>>>>> Tomas >>>>>>> >>>>>>> >>>>>>> >>>>>>> *From:* ironruby-core-boun...@rubyforge.org [mailto: >>>>>>> ironruby-core-boun...@rubyforge.org] *On Behalf Of *Nathan Stott >>>>>>> *Sent:* Wednesday, March 18, 2009 8:33 AM >>>>>>> *To:* ironruby-core@rubyforge.org >>>>>>> *Subject:* [Ironruby-core] problem >>>>>>> >>>>>>> >>>>>>> >>>>>>> Hi all. I have a question that probably belongs on a users mailing >>>>>>> list but I could not find one. >>>>>>> >>>>>>> >>>>>>> >>>>>>> I get the following error when trying to use my IronRuby windsor >>>>>>> registration script: >>>>>>> >>>>>>> * >>>>>>> System.InvalidOperationException: can't convert >>>>>>> Castle::Core::ComponentModel into Castle::Core::ComponentModel >>>>>>> * >>>>>>> >>>>>>> >>>>>>> >>>>>>> I assume this has something to do with the fact that newing up an >>>>>>> object in IronRuby isn't the same thing as newing it up in C#. >>>>>>> >>>>>>> >>>>>>> >>>>>>> Any suggestions or guidance would be appreciated. >>>>>>> >>>>>>> >>>>>>> >>>>>>> Here is the important IronRuby code: >>>>>>> >>>>>>> >>>>>>> >>>>>>> require 'Castle.Windsor' >>>>>>> >>>>>>> require 'Castle.MicroKernel' >>>>>>> >>>>>>> require 'Castle.Core' >>>>>>> >>>>>>> >>>>>>> >>>>>>> ComponentRegistration = >>>>>>> Castle::MicroKernel::Registration::ComponentRegistration >>>>>>> >>>>>>> ComponentModel = Castle::Core::ComponentModel >>>>>>> >>>>>>> Parameter = Castle::MicroKernel::Registration::Parameter >>>>>>> >>>>>>> Component = Castle::MicroKernel::Registration::Component >>>>>>> >>>>>>> >>>>>>> >>>>>>> def component(options) >>>>>>> >>>>>>> throw :classIsRequired if !options.has_key?(:class) >>>>>>> >>>>>>> >>>>>>> >>>>>>> klass = options[:class].to_clr_type >>>>>>> >>>>>>> >>>>>>> >>>>>>> if options.has_key?(:service) >>>>>>> >>>>>>> service = options[:service].to_clr_type >>>>>>> >>>>>>> else >>>>>>> >>>>>>> service = klass >>>>>>> >>>>>>> end >>>>>>> >>>>>>> >>>>>>> >>>>>>> if options.has_key?(:name) >>>>>>> >>>>>>> name = options[:name] >>>>>>> >>>>>>> else >>>>>>> >>>>>>> name = klass.class.name.underscore.lowercase >>>>>>> >>>>>>> end >>>>>>> >>>>>>> >>>>>>> >>>>>>> model = ComponentModel.new(name, service, klass) >>>>>>> >>>>>>> >>>>>>> >>>>>>> if options.has_key?(:parameters) >>>>>>> >>>>>>> parameters = options[:parameters] >>>>>>> >>>>>>> parameters.each do |p| >>>>>>> >>>>>>> model.Parameters.Add(p.key, >>>>>>> p.value) >>>>>>> >>>>>>> end >>>>>>> >>>>>>> end >>>>>>> >>>>>>> >>>>>>> >>>>>>> $container.Register(ComponentRegistration.new(model)) >>>>>>> >>>>>>> end >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Ironruby-core mailing list >>>>>>> Ironruby-core@rubyforge.org >>>>>>> http://rubyforge.org/mailman/listinfo/ironruby-core >>>>>>> >>>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Ironruby-core mailing list >>>>>> Ironruby-core@rubyforge.org >>>>>> http://rubyforge.org/mailman/listinfo/ironruby-core >>>>>> >>>>>> >>>>> >>>>> _______________________________________________ >>>>> Ironruby-core mailing list >>>>> Ironruby-core@rubyforge.org >>>>> http://rubyforge.org/mailman/listinfo/ironruby-core >>>>> >>>>> >>>> >>> >>> _______________________________________________ >>> Ironruby-core mailing list >>> Ironruby-core@rubyforge.org >>> http://rubyforge.org/mailman/listinfo/ironruby-core >>> >>> >> > > _______________________________________________ > Ironruby-core mailing list > Ironruby-core@rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core > >
_______________________________________________ Ironruby-core mailing list Ironruby-core@rubyforge.org http://rubyforge.org/mailman/listinfo/ironruby-core