Is this what you are looking for ? http://groups.google.com/group/castle-project-users/browse_thread/thread/3e060544299f5a17 http://mikehadlow.blogspot.com/2010/02/10-advanced-windsor-tricks-9.html
Pat 2010/10/17 Krzysztof Koźmic <[email protected]> > Adding that would require serious rework as the feature is internal to XML > subsystem. And frankly I don't really see much value in this. > Feel free to log it to uservoice if you think it's valuable and if it > becomes a popular requiest we probably will reconsider it :) > > cheers, > Krzysztof > > > On 17/10/2010 5:53 PM, Symon Rottem wrote: > > Yep - that's what I'll be doing. I just wondered if there was a way to > accomplish it with the built in Windsor behavior. > > Thanks all. > > Symon. > > Symon Rottem > http://blog.symbiotic-development.com > > > 2010/10/16 Krzysztof Koźmic <[email protected]> > >> why not use appsettings for that? >> >> >> On 16/10/2010 6:09 PM, Symon Rottem wrote: >> >> Thanks Jason, but the entire point of what I'm trying to achieve is >> *not* put the value into the code. >> >> I wanted to use the container to populate the constructor with a value >> *from the xml*, specifically so it doesn't have to be hard coded while still >> hard coding the actual component registration. >> >> I assumed the container would be capable of parsing and holding the >> values from the properties node to use in fluent registration, but so far it >> doesn't look like it does and I'll need to parse the XML myself. >> >> Cheers, >> >> Symon. >> >> >> Symon Rottem >> http://blog.symbiotic-development.com >> >> >> On Fri, Oct 15, 2010 at 8:30 PM, Jason Meckley <[email protected]>wrote: >> >>> you want to pass the actual value, not the property reference. >>> Parameter.ForKey("password").Eq("SomePassword") >>> >>> here is an example taken from rhino.esb. here an array of services are >>> registered instead of a single property value. the concept should be >>> similar. >>> protected override void RegisterComponents() >>> { >>> Kernel.Register( >>> Component.For<IDeploymentAction>() >>> .ImplementedBy<CreateLogQueueAction>(), >>> Component.For<IDeploymentAction>() >>> .ImplementedBy<CreateQueuesAction>(), >>> Component.For<IServiceBus, IStartableServiceBus>() >>> .ImplementedBy<DefaultServiceBus>() >>> .LifeStyle.Is(LifestyleType.Singleton) >>> .DependsOn(new >>> { >>> messageOwners = messageOwners.ToArray(), >>> }) >>> >>> .Parameters(Parameter.ForKey("modules").Eq(CreateModuleConfigurationNode()) >>> ) >>> ); >>> } >>> >>> private IConfiguration CreateModuleConfigurationNode() >>> { >>> var config = new MutableConfiguration("array"); >>> foreach (Type type in messageModules) >>> { >>> config.CreateChild("item", "${" + type.FullName + "}"); >>> } >>> return config; >>> } >>> >>> another idea: get access to the configuration store, get the >>> properties node and pull the password_property value from the >>> configuration store. >>> >>> I like to use the dependson() method to register constants. i find >>> it's cleaner. example: >>> class Foo >>> { >>> public int Number {get;set;} >>> >>> Foo(string text) >>> { >>> } >>> } >>> >>> Component.For<Foo>().DependsOn(new{text = "hi", Number = 1}) >>> >>> >>> On Oct 15, 1:47 pm, Symon Rottem <[email protected]> wrote: >>> > Sure thing. It's a bit of a contrived example, but here goes: >>> > >>> > I want to have some properties registered in my <castle> section in my >>> > web.config: >>> > >>> > <configSections> >>> > <section name="castle" >>> > type="Castle.Windsor.Configuration.AppDomain.CastleSectionHandler, >>> > Castle.Windsor"/> >>> > </configSections> >>> > >>> > <castle> >>> > <properties> >>> > <password_property>SomePassword<password_property> >>> > </properties> >>> > </castle> >>> > >>> > And then use them when registering a component fluently: >>> > >>> > windsorContainer = new WindsorContainer(); >>> > windsorContainer.Install(Configuration.FromAppConfig()); >>> > >>> > windsorContainer.Register( >>> > Component >>> > .For<SomeComponent>() >>> > .Parameters(Parameter.ForKey("password").Eq("#{password_property}")) >>> > ); >>> > >>> > Could be I'm doing it all wrong, but what I get passed into the >>> "password" >>> > parameter in the constructor of my SomeComponent instance is the value >>> > "#{password_property}" rather than "SomePassword" as I sexpected. >>> > >>> > What am I doing wrong? >>> > >>> > Cheers, >>> > >>> > Symon. >>> > >>> > Symon Rottemhttp://blog.symbiotic-development.com >>> > >>> > On Fri, Oct 15, 2010 at 7:20 PM, Jason Meckley < >>> [email protected]>wrote: >>> > >>> > > yes you can, there are multiple ways to configure components. first >>> > > get the values from the xml file. that is external to windsor. then >>> > > you can use the DependsOn fluent method or ServiceOverride or >>> > > Property.For().Eq() to configure the component. there may be more >>> > > options as well but these are ones I'm aware of. >>> > >>> > > if you provide a code sample of what you want to do we may be able to >>> > > help. >>> > >>> > > On Oct 15, 12:56 pm, João Bragança <[email protected]> wrote: >>> > > > It's an ugly solution, but what about loading the XML file in an >>> > > > xmldocument/xdocument and getting the properties that way? >>> > >>> > > > On Oct 15, 7:15 am, Symon Rottem <[email protected]> wrote: >>> > >>> > > > > Is it possible to use property reference notation (#{property}) >>> in the >>> > > > > fluent API? >>> > >>> > > > > I want to use properties that are registered in XML to set values >>> on >>> > > > > components registered via the API, but I don't seem to be having >>> any >>> > > luck. >>> > >>> > > > > Cheers, >>> > >>> > > > > Symon. >>> > >>> > > > > Symon Rottemhttp://blog.symbiotic-development.com >>> > >>> > > -- >>> > > You received this message because you are subscribed to the Google >>> Groups >>> > > "Castle Project Users" group. >>> > > To post to this group, send email to >>> [email protected] >>> > > . >>> > > To unsubscribe from this group, send email to >>> > > >>> [email protected]<castle-project-users%[email protected]> >>> <castle-project-users%[email protected]<castle-project-users%[email protected]> >>> > >>> > > . >>> > > For more options, visit this group at >>> > >http://groups.google.com/group/castle-project-users?hl=en. >>> > >>> > >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Castle Project Users" group. >>> To post to this group, send email to >>> [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]<castle-project-users%[email protected]> >>> . >>> For more options, visit this group at >>> http://groups.google.com/group/castle-project-users?hl=en. >>> >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "Castle Project Users" group. >> To post to this group, send email to >> [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/castle-project-users?hl=en. >> >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Castle Project Users" group. >> To post to this group, send email to >> [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<castle-project-users%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/castle-project-users?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Users" group. > To post to this group, send email to [email protected] > . > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/castle-project-users?hl=en. > > > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Users" group. > To post to this group, send email to [email protected] > . > To unsubscribe from this group, send email to > [email protected]<castle-project-users%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/castle-project-users?hl=en. > -- You received this message because you are subscribed to the Google Groups "Castle Project Users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/castle-project-users?hl=en.
