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] <mailto:[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] <mailto:[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]
        <mailto:[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
        <http://blog.symbiotic-development.com>
        >
        > On Fri, Oct 15, 2010 at 7:20 PM, Jason Meckley
        <[email protected] <mailto:[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] <mailto:[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]
        <mailto:[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
        <http://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]
        <mailto:[email protected]>
        > > .
        > > To unsubscribe from this group, send email to
        > > [email protected]
        
<mailto:castle-project-users%[email protected]><castle-project-users%[email protected]
        <mailto: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]
        <mailto:[email protected]>.
        To unsubscribe from this group, send email to
        [email protected]
        <mailto: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]
    <mailto:[email protected]>.
    To unsubscribe from this group, send email to
    [email protected]
    <mailto:[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]
    <mailto:[email protected]>.
    To unsubscribe from this group, send email to
    [email protected]
    <mailto: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].
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en.

Reply via email to