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<about:file%3A%2F%2F51192FB1-7EF2-4CAF-BAF3-3F0F7A10E911%2Ff%3AComponentLoader.cs%3Fline%3D64%26column%3D1> at Motorpool.Calendar.Web.Test.ComponentLoaderRegisteringComponentContext .ShouldRegisterComponent() in ComponentLoaderRegisteringComponentContext.cs: line 26<about:file%3A%2F%2F532B0F7A-5F7B-4C0E-AF76-4BC0CE12DB4F%2Ff%3AComponentLoaderRegisteringComponentContext.cs%3Fline%3D26%26column%3D1>
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