I think you can use component forwarding for this:

component "one", IInterface, Implementation1
component "two", IInterface, Implementation2

extend "two" < IInterface

all calls to Resolve<IInterface>() should be redirected to "two"

On Feb 20, 8:24 am, Bart Reyserhove <[email protected]> wrote:
> You can redirect future calls from the previous component to the new one,
> though
> I cannot seem to find any information on this. Is there documentation on
> Windsor available that describes this?
>
> On Wed, Feb 18, 2009 at 10:17 PM, Ayende Rahien <[email protected]> wrote:
> > No, you can't.Not only that, but you can't rely on the ability to remove a
> > component from the container.
> > You can redirect future calls from the previous component to the new one,
> > though.
>
> > On Wed, Feb 18, 2009 at 3:54 PM, Bart Reyserhove <
> > [email protected]> wrote:
>
> >> I want to completely replace a component. I did not think it was possible
> >> with extend
>
> >> On Wed, Feb 18, 2009 at 9:52 PM, Ayende Rahien <[email protected]> wrote:
>
> >>> Not following...
>
> >>> On Wed, Feb 18, 2009 at 3:51 PM, Craig Neuwirt <[email protected]>wrote:
>
> >>>> extend only extends dependencies and interface forwaring..
>
> >>>> On Wed, Feb 18, 2009 at 2:49 PM, Ayende Rahien <[email protected]>wrote:
>
> >>>>> Why can't you use extend?
> >>>>> That is why it is here
>
> >>>>> On Wed, Feb 18, 2009 at 3:23 PM, Bart Reyserhove <
> >>>>> [email protected]> wrote:
>
> >>>>>> I noticed this week you could extend existing components but can you
> >>>>>> also override them?
> >>>>>> I mean by override something in the following style:
>
> >>>>>> for type in AllTypesBased of IController("WineCellar.Web"):
> >>>>>>  component type.Name.ToLower(), type:
> >>>>>>   lifestyle Transient
> >>>>>>   interceptor LoggingInterceptor
>
> >>>>>> Component "winecontroller",WineController of
> >>>>>> ParkerWine,ParkerWineController:
> >>>>>>   lifestyle Transient
>
> >>>>>> You have probably guessed already. The component with key
> >>>>>> "winecontroller" is already registered in a statement that just 
> >>>>>> registers
> >>>>>> all controllers. I don't want to register all my controllers manually, 
> >>>>>> but
> >>>>>> then again I want to overwrite one of the controllers for a specific 
> >>>>>> tenant.
>
> >>>>>> I think there are different possibilities to do this:
>
> >>>>>>    1. This would be easy enough to do by just checking in "Component"
> >>>>>>    whether the component was already registered and if that is the 
> >>>>>> case, remove
> >>>>>>    it again and register the second one. Now this throws an exception.
> >>>>>>    2. Add a new overload for Component
> >>>>>>    3. Add "Override" in a similar way as "Extend"
>
> >>>>>> What do you think?
>
> >>>>>> Bart
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Rhino Tools Dev" 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/rhino-tools-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to