Ich habe den folgenden einfachen Test geschrieben, um zu versuchen, das fließende Interface von Castle Windsor zu lernen:
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);
}
}
}
Wenn ich den Test über TestDriven.NET ausführe, wird folgende Fehlermeldung angezeigt:
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()
Wenn ich den Test über die NUnit-GUI ausführe, erhalte ich:
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.
Wenn ich die Assembly öffne, auf die ich in Reflector verweise, kann ich folgende Informationen sehen:
Castle.MicroKernel, Version=1.0.3.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc
und dass es definitiv Castle.MicroKernel.Registration.IRegistration enthält
Was könnte los sein?
Ich sollte erwähnen, dass die Binärdateien aus dem neuesten Build von Castle stammen, obwohl ich noch nie mit nant gearbeitet habe, sodass ich mich nicht darum gekümmert habe, aus dem Quellcode neu zu kompilieren, sondern nur die Dateien im bin-Verzeichnis übernommen habe. Ich sollte auch darauf hinweisen, dass mein Projekt problemlos kompiliert werden kann.