SFサービスコンテキストから利用可能な「ConfigurationPackage」を使用して、SF構成から構成を読み込もうとしています。私のクラスは次のようになります。DIを使用してServics Fabric ServiceContextをConfig実装に挿入
internal class ServiceFabricDbConfiguration : IDbConnectionConfig
{
private ConfigurationPackage _configurationPackage;
public ServiceFabricDbConfiguration(ServiceContext context)
{
_configurationPackage = context.CodePackageActivationContext.GetConfigurationPackageObject("Config");
}
public string UserName =>
_configurationPackage.Settings.Sections["Db_Configuration"]
.Parameters[
"Username"]
.Value;
}
私は私のDIコンテナとしてautofac使用しています、と私はSFランタイムに登録する際に明示的ServiceContextのへの参照を取得することにより、上記のクラスを登録することができます
ServiceRuntime.RegisterServiceAsync("ApiType",
context =>
{
Bootstrapper.SetContext(context);
return new Api(context);
})
.GetAwaiter()
.GetResult();
ServiceContextをbootstrapperに登録する方法はありますか?理想的にはbootstrapperクラス内にありますか?
私は現在、私の俳優/サービスを登録するAutofac.ServiceFabricを使って実験していますが、それは(それがはるかに簡単きれいautofacモジュールの定義を維持するために作るんが)ServiceContextのはとても再び達成する上で困難になります隠し
でServiceContextのが利用できるようになります。あなたはこれを利用できませんか? – Mardoxx
サービスファブリックのautofac拡張機能をまだ検討していないのであれば、真剣に考えてみてください。現時点ではベータ版ですが、私はそれを問題なく使用しています。 https://github.com/autofac/Autofac.ServiceFabric – Mardoxx
Ah - 私はFabricRuntimeに気づいていませんでした(FabricClientを使っていましたがServiceContextはこれで利用できませんでした)。これを回答として追加すると、私はそれを受け入れます。うん - 私はちょうどAutofac.ServiceFabricを使用するために私たちのプロジェクトを切り替えるだけですが、私は彼らがこれの拡張機能のビルドを持っているとは思わない? [お詫び - Bootstrapperはオートファック登録のクラスです] –