I actually think that's a bug.
Everything else in Windsor is case insensitive... why that should be any different?

Krzysztof

On 18/06/2011 4:42 AM, Mauricio Scheffer wrote:
You could write a type converter that puts data in a case-insensitive dictionary.

See:

Type converters: http://www.castleproject.org/container/documentation/trunk/usersguide/typeconverters.html http://mikehadlow.blogspot.com/2010/02/10-advanced-windsor-tricks-10.html

Default generic dictionary type converter: https://github.com/castleproject/Castle.Windsor/blob/master/src/Castle.Windsor/MicroKernel/SubSystems/Conversion/GenericDictionaryConverter.cs

Dictionary with custom comparer: http://msdn.microsoft.com/en-us/library/ms132073.aspx

--
Mauricio



On Fri, Jun 17, 2011 at 1:14 PM, Scott_M <[email protected] <mailto:[email protected]>> wrote:

    I am using a dictionary in castle windsor configuration to build an
    authenticator factory.  The dictionary key represents a URL  and then
    the object represents each specific authenticator service.

    //config
    <component id="AuthenticatorFactory" lifestyle="singleton"
    service="Security.IAuthenticatorFactory, Security"
    type="Security.AuthenticatorFactory, Security">
    <parameters>
    <authenticators>
    <dictionary>
    <entry key="https://smpc.acme.com/sts/sts.svc/
    anonymoususer">${AnonymousUserAuthenticator}</entry>
    <entry key="https://wcvpc-w7.acme.com/sts/sts.svc/
    anonymoususer">${AnonymousUserAuthenticator}</entry>
    <entry key="https://tkpc.acme.com/sts/sts.svc/
    anonymoususer">${AnonymousUserAuthenticator}</entry>
    </dictionary>
    </authenticators>
    </parameters>
    </component>

    //code
    public class AuthenticatorFactory : IAuthenticatorFactory
    {
           private Dictionary<string, IAuthenticator> m_authenticators =
    new Dictionary<string, IAuthenticator>();

           public AuthenticatorFactory(Dictionary<string, IAuthenticator>
    authenticators)
           {
                   m_authenticators = authenticators;
           }

           public IAuthenticator GetAuthenticator(string url)
           {
               IAuthenticator retVal = null;

               if (m_authenticators.ContainsKey(url))
               {
                   retVal = m_authenticators[url.ToString()];
               }

               return retVal;
           }
    }

    By default the dictionary appears to be case sensitive.  Is there a
    way to have castle construction a case insensitive dictionary?



    scottm

    --
    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