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