Hello all.
I'm having problems with some code which has a constructor dependency
of type ICollection<T> which reports that the dependency can not be
satisfied. However, if I write a test which specifically resolves the
collection, it passes.
However, if I change the constructor parameter to Collection<T> (and
amend the registration) then this works... except I want to use the
interface, that is.
Has anyone come across this situation? Am I doing something wrong? Is
this a known issue?
Thanks for any help :)
- Tim.
Here is a couple of tests which demonstrates the problem:
namespace CollectionDependencyExample
{
using System.Collections.Generic;
using System.Collections.ObjectModel;
using Castle.MicroKernel.Registration;
using Castle.Windsor;
using NUnit.Framework;
using NUnit.Framework.Extensions;
[ TestFixture ]
public class CollectionDependencyTests
{
private WindsorContainer container;
[ SetUp ]
public void Set_up_test_context()
{
container = new WindsorContainer();
container.Register(
Component.For<ICollection<object>>().ImplementedBy<Collection<object>>() );
container.Register( Component.For<CollectionUser>() );
}
[ Test ]
public void Should_be_able_to_resolve_the_collection()
{
container.Resolve<ICollection<object>>().Should(
Be.Not.Null.And.TypeOf<Collection<object>>() ); //
Passes
}
[ Test ]
public void
Should_be_able_to_resolve_class_with_collection_dependency()
{
container.Resolve<CollectionUser>().Should( Be.Not.Null ); //
Fails
}
}
public class CollectionUser
{
public CollectionUser( Collection<object> objects ) {}
}
}
--
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.