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.

Reply via email to