0
var container = new Container(x =>
{
x.For<IEngine>().Use<V6Engine>();
x.For<ICar>().Use<HondaCar>();
}
);
ICar car = ObjectFactory.GetInstance<ICar>();
Console.WriteLine(car.Noise());
:私はクイックスタートを読んで、私はあなたにも、コンストラクタで使用される特定のインターフェイスをwireup場合、あなたは「ドンと理解 ヘルプ私はエラーを取得しています
StructureMap Exception Code: 202
No Default Instance defined for PluginFamily ClassLibrary1.ICar, ClassLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
明示的に各クラスの構成でインターフェイスを配線する必要があります。
上記のように、私はV6EngineにIEngineを接続し、次にICarをHondaCarに接続しました(これはコンストラクタにはすでに接続されているIEngineがあります)。
なぜこれは機能しませんか?
はい、動作しますが、なぜですか? Webアプリケーションでobjectfactoryが動作するでしょうか?コンテナは、コンテナ構成コードを含むファイル以外の他の場所では有効範囲に含まれません。 – codecompleting
asp.net mvcを使用していますか? – alexl
ObjectFactoryを使用する場合は、ObjectFactory.Initialize(x => ...);を使用します。 – alexl