containerBuilder
.Register<IGraphClient>(context =>
{
var graphClient = new GraphClient(new Uri("http://localhost:9999/db/data"));
graphClient.Connect(); // Particularly this line
return graphClient;
})
.SingleInstance();
インターフェイスを具象クラスに登録する方法は理解できますが、この特定のクラスは単一のインスタンスである必要があり(これはLifeStyle.Singletonであると確信しています)、graphClient.Connect()メソッドも呼び出す必要があります。それが私がこだわっている主要な部分です。
JeffN825の回答に基づいて、私はこれを行いました。
container.Register(
Component.For(
typeof (IGraphClient))
.ImplementedBy(typeof (GraphClient))
.LifeStyle.Singleton.UsingFactoryMethod(() =>
{
var graphClient = new GraphClient(new Uri("http://localhost:7474/db/data"));
graphClient.Connect();
return graphClient;
}));