これを構造マップグループにも投稿しました。私たちは先週structuremapを使い始めました。本当にそれを掘り下げています。StructureMapを使用している単純な工場
私は単純なものが欠けていると確信しています。
私は工場でSMを使用して次のコードを模倣しようとしています。 工場のクラスにコンテナの依存関係があっても大丈夫です。このスレッドの コンセンサスは、これが正しいと思われました アプローチ:http://www.codeplex.com/unity/Thread/View.aspx?ThreadId=29697。 もっと良い方法があれば、私はこれを達成する他の方法を聞いて開けます。
基本的に私の工場のCreateメソッドは列挙型の値をとります( は実際の型かもしれませんが、コンテナによって制御されたものではありません)。正しいインスタンスが返されます。 の戻り値の型はSMによって管理されることに注意してください。多くの(!)がある可能性があるので、私は工場のCtorにすべての を入力したくありません。私は、ドキュメントの右側のセクションにリンク
public class PreSaveActionFactory : IPreSaveActionFactory
{
public IPreSaveAction Create(MyEnumType enumType)
{
IPreSaveAction action;
switch (enumType)
{
case MyEnumType.Value1:
//imagine this has 3 Ctor arguments
action = new Value1PreSaveAction();
break;
case MyEnumType.Value2:
//and imagine this has 4 completely different Ctor arguments
action = new Value2PreSaveAction();
break;
default:
throw new NotSupportedException();
}
return action;
}
}
は結構です、あなたは(私は:)文句を言わないだろうが)私のためのコードを記述 する必要はありません。私は に工場がどのように見えるか、またレジストリコードを知りたいと思います。
WithName()とGetNamedInstance()を使用すると機能します。既存のインスタンスとして返されたオブジェクトは考えていませんでしたが、オンデマンドインスタンスとして多くのことを理解してくれました。私はデバッグのトレースと読み込みを行っていますし、少し理解しています。 ご協力いただきありがとうございます。私は明らかにあまりにも新しいので、あなたの答えを投票することはできません。 –