User: xtoff
Date: 2010/01/13 12:01 AM
Modified:
/InversionOfControl/trunk/src/Castle.MicroKernel.Tests/Facilities/FactorySupport/
FactorySupportTestCase.cs
/InversionOfControl/trunk/src/Castle.MicroKernel/Facilities/FactorySupport/
AccessorActivator.cs, FactoryActivator.cs
Log:
- fixed bug in factory support facility found by some users.
File Changes:
Directory:
/InversionOfControl/trunk/src/Castle.MicroKernel/Facilities/FactorySupport/
======================================================================================
File [modified]: AccessorActivator.cs
Delta lines: +1 -1
===================================================================
---
InversionOfControl/trunk/src/Castle.MicroKernel/Facilities/FactorySupport/FactoryActivator.cs
2010-01-13 04:29:27 UTC (rev 6652)
+++
InversionOfControl/trunk/src/Castle.MicroKernel/Facilities/FactorySupport/FactoryActivator.cs
2010-01-13 07:01:56 UTC (rev 6653)
@@ -98,7 +98,7 @@
instance = this.Create(factoryInstance,
factoryId, instanceCreateMethod, factoryCreate, context);
}
var type =
context.Handler.ComponentModel.Implementation;
- if (instance != null && type != null &&
type.IsInstanceOfType(instance) == false)
+ if (instance != null && type != null &&
Model.Implementation.IsInstanceOfType(instance) == false)
{
String message =
File [modified]: FactoryActivator.cs
Delta lines: +23 -0
===================================================================
---
InversionOfControl/trunk/src/Castle.MicroKernel.Tests/Facilities/FactorySupport/FactorySupportTestCase.cs
2010-01-13 04:29:27 UTC (rev 6652)
+++
InversionOfControl/trunk/src/Castle.MicroKernel.Tests/Facilities/FactorySupport/FactorySupportTestCase.cs
2010-01-13 07:01:56 UTC (rev 6653)
@@ -108,7 +108,18 @@
Assert.Throws(typeof(FacilityException), () =>
kernel.Resolve<Pet>());
}
+ [Test]
+ public void Works_for_dependencies()
+ {
+ kernel.AddFacility("factories", new
FactorySupportFacility());
+ kernel.Register(
+ Component.For<Pet>().ImplementedBy<Cat>()
+ .UsingFactoryMethod(() => new Cat()));
+ kernel.Register(Component.For<UsesPet>());
+ kernel.Resolve<UsesPet>();
+ }
+
private ComponentModel AddComponent(string key, Type type,
string factoryMethod)
{
MutableConfiguration config = new
MutableConfiguration(key);
@@ -184,9 +195,21 @@
public class Dog : Pet
{
}
+
public class Pet
{
}
+
+ public class UsesPet
+ {
+ public Pet Pet { get; set; }
+
+ public UsesPet(Pet pet)
+ {
+ Pet = pet;
+ }
+ }
+
public class PetFactory
{
Directory:
/InversionOfControl/trunk/src/Castle.MicroKernel.Tests/Facilities/FactorySupport/
============================================================================================
File [modified]: FactorySupportTestCase.cs
Delta lines: +0 -0
===================================================================
--
You received this message because you are subscribed to the Google Groups
"Castle Project Commits" 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-commits?hl=en.