Ok, j'ai écrit cette question plus tôt aujourd'hui mais j'ai décidé de la supprimer parce que je pensais que la question n'était pas très bien formulée. J'ai décidé d'attendre jusqu'à ce que j'ai plus de temps pour le composer à la maison :). Je commence juste avec IOC/DI. J'ai fait quelques recherches sur le framework à utiliser et j'ai décidé de donner une structure à StructureMap. Ce qui suit est le premier tutoriel que j'ai utilisé: http://dimecasts.net/Casts/CastDetails/39 par Derik Whittaker.StructureMap très basique?
De toute façon, tout fonctionne comme un rêve avec TOUT est hébergé dans le même projet. Voici mon exemple de code:
[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
}
donc de toute façon, si je crée le projet ci-dessus dans un programme de ligne de commande et procédez comme suit:
var consumer = ObjectFactory.GetInstance<IConsumer>();
Il fonctionne parfaitement. Aucun problème du tout. Lorsque je crée un projet séparé dans la solution, puis changez le projet ci-dessus en une DLL. Je reçois l'erreur suivante:
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.
Au début, je pensais peut-être le fichier StructureMap.Config n'a pas obtenu dans le nouveau dossier bin projets, mais qui n'a pas été le cas. C'était là. Everythign compile très bien ce problème arrive à l'exécution. Je suis sûr que la solution est très facile mais pour la vie de moi je ne peux pas comprendre ce qui ne va pas. Toute aide serait très appréciée.
Merci, COEEP