J'ai écrit le test simple suivant en essayant d'apprendre l'interface fluide de Castle Windsor :
using NUnit.Framework;
using Castle.Windsor;
using System.Collections;
using Castle.MicroKernel.Registration;
namespace WindsorSample {
public class MyComponent : IMyComponent {
public MyComponent(int start_at) {
this.Value = start_at;
}
public int Value { get; private set; }
}
public interface IMyComponent {
int Value { get; }
}
[TestFixture]
public class ConcreteImplFixture {
[Test]
public void ResolvingConcreteImplShouldInitialiseValue() {
IWindsorContainer container = new WindsorContainer();
container.Register(Component.For<IMyComponent>().ImplementedBy<MyComponent>().Parameters(Parameter.ForKey("start_at").Eq("1")));
IMyComponent resolvedComp = container.Resolve<IMyComponent>();
Assert.AreEqual(resolvedComp.Value, 1);
}
}
}
Lorsque j'exécute le test via TestDriven.NET, j'obtiens l'erreur suivante :
System.TypeLoadException : Could not load type 'Castle.MicroKernel.Registration.IRegistration' from assembly 'Castle.MicroKernel, Version=1.0.3.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc'.
at WindsorSample.ConcreteImplFixture.ResolvingConcreteImplShouldInitialiseValue()
Lorsque j'exécute le test à travers le NUnit GUI, j'obtiens :
WindsorSample.ConcreteImplFixture.ResolvingConcreteImplShouldInitialiseValue:
System.IO.FileNotFoundException : Could not load file or assembly 'Castle.Windsor, Version=1.0.3.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc' or one of its dependencies. The system cannot find the file specified.
Si j'ouvre l'assemblage auquel je fais référence dans Reflector, je peux voir que ses informations sont les suivantes :
Castle.MicroKernel, Version=1.0.3.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc
et qu'il contient certainement Castle.MicroKernel.Registration.IRegistration
Qu'est-ce qui peut bien se passer ?
Je dois préciser que les binaires sont tirés de l'application dernière version de Castle Bien que je n'aie jamais travaillé avec nant, je n'ai pas pris la peine de recompiler à partir des sources et j'ai juste pris les fichiers dans le répertoire bin. Je dois également souligner que mon projet se compile sans problème.