It is actually very useful to be able to give a dependency for anything on
the chain. I agree that matching by name is... not ideal, but I don't see
any other choice.
Imagine:
var sender = container.Resolve<INotificationSender>(new { Host = "somehost"
});
Where INotificationSender depends on IEmailSender, which depends on Host.
On Sat, Dec 27, 2008 at 3:05 AM, hammett <[email protected]> wrote:
>
> I wasnt sure what was the additionalArgs behavior when going down in
> the dependency chain, so I added a test, which failed but that's
> another story.
>
> Seems that the current behavior is to propagate the additionalArgs
> which makes me a bit uncomfortable. Think about it: every parameter
> set on that dictionary will be matched by name, without a scope. This
> has a great potential of name clashing leading to unexpected behavior.
> I have commented the code that propagates it (CreationContext
> constructor that takes a parent context) but even that isn't good
> enough.
>
> As an user I'd expect a very well defined and predictable behavior. So
> for a usage like
>
> var sender = container.Resolve<IEmailSender, new { Host = "somehost" }>();
>
> I would expect that the host of the IEmailSender will be the only one
> affected, not any dependency that the email sender happens to have..
> does that make sense?
>
> Currently I believe this is the behavior I left but more tests or
> thinking are appreciated. The construction graph is inverted if
> dependencies are set through constructors but I'd hope that the root
> CreationContext will be tied to the root component/default handler.
>
>
> Thoughts?
>
> --
> Cheers,
> hammett
> http://hammett.castleproject.org/
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Castle Project Development List" 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-devel?hl=en
-~----------~----~----~----~------~----~------~--~---