sometype.to_clr_type.name :) you can look in the ninject stuff I did.. i bet it has a lot of the stuff you will need for your windsor dsl
2009/3/18 Nathan Stott <nrst...@gmail.com> > Excellent. > Thanks for your help, guys. > > I'm now able to use IronRuby for my windsor registration DSL. I'm very > pleased so far. > > I have one other question, how can I take a clr type and get its clr name? > > When I do this: > sometype.to_clr_type.class.name > > I always get System::RuntimeType > > 2009/3/18 Tomas Matousek <tomas.matou...@microsoft.com> > >> Yes, this was the right list – we don’t have any other. >> >> >> >> Tomas >> >> >> >> *From:* ironruby-core-boun...@rubyforge.org [mailto: >> ironruby-core-boun...@rubyforge.org] *On Behalf Of *Nathan Stott >> *Sent:* Wednesday, March 18, 2009 12:55 PM >> *To:* ironruby-core@rubyforge.org >> *Subject:* Re: [Ironruby-core] problem >> >> >> >> 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 >> >> > > _______________________________________________ > 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