好吧,我今天早些時候寫了這個問題,但我決定刪除它,因爲我認爲這個問題措辭不是很好。我決定等到我有更多時間在家裏創作它:)。 我剛剛開始使用IOC/DI。我已經做了一些關於使用哪個框架的研究,並決定給StructureMap一個旋轉。以下是我使用的第一個教程:Derik Whittaker的 http://dimecasts.net/Casts/CastDetails/39。非常基本的StructureMap?
無論如何,我得到了一切像夢一樣工作,一切都在同一個項目中進行。 這裏是我的示例代碼:
[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
}
所以,不管怎麼說,如果我創建項目入一個命令行程序,並做到以下幾點:
var consumer = ObjectFactory.GetInstance<IConsumer>();
它完美。沒有問題。當我在解決方案中創建一個獨立的項目,然後將上述項目更改爲一個DLL。我得到以下錯誤:
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.
起初我以爲也許StructureMap.Config文件並沒有進入新的項目bin文件夾,但事實並非如此。它在那裏。 Everythign編譯就好,這個問題發生在運行時。我相信這個解決方案非常簡單,但對於我的生活,我無法弄清楚什麼是錯誤的。任何幫助將非常感激。
感謝, NCAGE