0
によるインスタンスのグループを作成します。は、私はこのクラスを持っていると仮定すると、名前AutoFac
特定の名前のプロセスオブジェクトが既に作成されている場合は、その特定のインスタンスを返したいと思います。私の現在のコードでは
ContainerBuilder builder = new ContainerBuilder();
builder.RegisterType<ProcessObject>();
builder.RegisterType<ProcessObject>().As<IProcessObject>().;
Container = builder.Build();
var obj1 = Container.Resolve<IProcessObject>(new NamedParameter("Name", "UniqueObjectByName1"));//Does not exist, create new instance
var obj2 = Container.Resolve<IProcessObject>(new NamedParameter("Name", "UniqueObjectByName1"));//An instance with this name exists, return that instance
var obj3 = Container.Resolve<IProcessObject>(new NamedParameter("Name", "UniqueObjectByName2"));//Does not exist, create new instance
Debug.WriteLine(obj1.Equals(obj2));//this is currently returning False, I would like it to be true
Debug.WriteLine(obj1.Equals(obj3));
「使用のサンプル・コードは、」私はすべての私のProcessObjectsを追跡するためのProcessObjectクラスとシングルトンリスト内の静的メソッドを持つことで、この原則を維持します。
public static GetInstance(string Name)
{
if (ProcessObjects.GetInstanceByName(Name) == null)
{
return new ProcessObject(Name);
}
else return ProcessObjects.GetInstanceByName(Name);
}
は、私はまだこれを必要とする、またはAutoFacは、プロパティの値によって独特のインスタンスを返すためのソリューションを提供してんですか?
恐ろしい解決策!私はあなたのサンプル "factory.GetInstanceByName(名前)のメソッドは、1つの質問を持って、"私の古いメソッド "GetInstance(string Name)"と同じですか?それともあなたもそれを変えるでしょうか? – Snovva1
申し訳ありませんが、私はその時点であなたの工場の方法の本体を見ていましたが、別の名前を付けられたことを認識していませんでした。それはあなたが何を呼んでも問題ではなく、意図は同じです。 –