I think a Handler Selector would work in this case:

http://docs.castleproject.org/Windsor.Handler-Selectors.ashx


---
Patrick Steele
http://weblogs.asp.net/psteele


On Wed, Jan 2, 2013 at 10:43 AM, Tomek Pluskiewicz <[email protected]>wrote:

> Hi
>
> Yes there is only one implementation but it is used as a dependency and
> configured to be resolved by name. The reader is configured in code
>
> Component.For<ICsvReader>()
> .ImplementedBy<CommaSeparetedCsvReader>()
> .DependsOn(new { SkipHeader = true, HeaderRowsToSkip = 2 } )
> .Named("CommaSeparetedCsvReader_Skips2Rows")
> .Lifestyle.Transient
>
> Component.For<ICsvReader>()
> .ImplementedBy<CommaSeparetedCsvReader>()
> .DependsOn(new { SkipHeader = true, HeaderRowsToSkip = 1 } )
> .Named("CommaSeparetedCsvReader_Skips1Row")
> .Lifestyle.Transient
>
> Component.For<ICsvReader>()
> .ImplementedBy<CommaSeparetedCsvReader>()
> .Named("CommaSeparetedCsvReader")
> .Lifestyle.Transient
>
> These are used as dependency in a processor class. It is configured in
> XML, so that in can be manipulated at runtime
>
> <component id="Processor
>    type="Processor">
>    <parameters>
>       <reader>CommaSeparetedCsvReader_Skips2Rows</reader>
>    </parameters>
> </component>
>
> Ideally I would like to register only the CommaSeparetedCsvReader
> component but when an attempt is made to resolve
> CommaSeparetedCsvReader_Skips2Rows it should strip the suffix, parse it and
> change the properties accordingly.
>
> Is it possible to somehow modify the Resolve() behavior?
>
> Thanks
> Tom
>
> On Wednesday, January 2, 2013 2:58:49 PM UTC+1, Patrick Steele wrote:
>
>> If you only have one implementation of ICsvReader registered then any
>> component that depends on an ICsvReader will get that one component
>> (assuming it's being resolved via Windsor).
>>
>> I guess I'm confused because you said you have multiple implementations
>> of ICsvReader but you only want to register one of them.  Could you give a
>> code example of how you'd like your code to look like in terms of
>> registration and component resolution?
>>
>> ---
>> Patrick Steele
>> http://weblogs.asp.net/psteele
>>
>>
>> On Mon, Dec 31, 2012 at 4:13 AM, Tomek Pluskiewicz <[email protected]>wrote:
>>
>>> Hi
>>>
>>> I have a seemingly simple use case. There is a ICsvReader component.
>>> Let's name it simply Reader here. We load a known set of CSV files and
>>> some of them have headers and some don't. Currently there are multiple
>>> readers: Reader_Skips1Row, Reader_Skips2Rows etc.
>>>
>>> Is there a way to register only one component and have Windsor look at
>>> the component key, strip the "_Skips..." part and resolve the required
>>> component with relevant properties set?
>>>
>>> I have tried subresolver and facility with no luck.
>>>
>>> Thanks,
>>> Tom
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Castle Project Users" group.
>>> To post to this group, send email to castle-pro...@**googlegroups.com.
>>>
>>> To unsubscribe from this group, send email to castle-project-users+**
>>> [email protected].
>>> For more options, visit this group at http://groups.google.com/**
>>> group/castle-project-users?hl=**en<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 view this discussion on the web visit
> https://groups.google.com/d/msg/castle-project-users/-/typu96C1blsJ.
>
> 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