Ok, ich habe diese Frage heute früher geschrieben, aber ich habe mich entschieden, sie zu löschen, weil ich dachte, die Frage sei nicht gut formuliert. Ich entschied mich zu warten, bis ich mehr Zeit hatte, es zu Hause zu komponieren :). Ich fange gerade mit IOC/DI an. Ich habe einige Nachforschungen darüber angestellt, welchen Rahmen ich verwenden soll und habe beschlossen, StructureMap einen Dreh zu geben. Das Folgende ist das erste Tutorial, das ich verwendet habe: http://dimecasts.net/Casts/CastDetails/39 von Derik Whittaker.Sehr einfache Strukturkarte?
Wie auch immer, ich habe alles funktioniert wie ein Traum mit ALLEN wird im selben Projekt gehostet. Hier ist mein Beispielcode:
[PluginFamily("SMTest",IsSingleton=true)]
public interface IVehicle
{
byte TopSpeed {set;get;}
byte MPG { set; get; }
}
[Pluggable("SMTest")]
public class Car : IVehicle
{
private byte mTopSpeed;
private byte mMPG;
#region IVehicle Members
byte IVehicle.TopSpeed
{
get
{
return mTopSpeed;
}
set
{
mTopSpeed = value;
}
}
public interface IConsumer
{
IVehicle Car { get; set; }
}
[Pluggable("SMTest")]
public class Consumer : StructureMapBasic.IConsumer
{
private IVehicle mCar;
public Consumer(IVehicle lcar)
{
Car = lcar;
}
public IVehicle Car { set; get; }
byte IVehicle.MPG
{
get
{
return mMPG;
}
set
{
mMPG = value;
}
}
#endregion
}
So irgendwie, wenn ich das Projekt über in ein Kommandozeilen-Programm und gehen Sie wie folgt erstellen:
var consumer = ObjectFactory.GetInstance<IConsumer>();
Es funktioniert perfekt. Überhaupt keine Probleme. Wenn ich ein separates Projekt in der Lösung erstellen und dann das obige Projekt in eine DLL ändern. Ich erhalte den folgenden Fehler:
Test method StructureMapBasic.ConsumerTest.ConsumerConstructorTest
threw exception: StructureMap.StructureMapException: StructureMap
Exception Code: 202 No Default Instance defined for PluginFamily
StructureMapBasic.IConsumer, StructureMapBasic, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null.
Zuerst dachte ich, vielleicht die StructureMap.Config Datei nicht in die neuen Projekten Binärordner bekommen hat, aber das war nicht der Fall. Es war da. Everything kompiliert nur gut, dieses Problem passiert zur Laufzeit. Ich bin sicher, dass die Lösung sehr einfach ist, aber für das Leben von mir kann ich nicht herausfinden, was schief läuft. Jede Hilfe wäre sehr dankbar.
Danke, NCAGE