1
Autofacコンフィグレーションを使用してServiceオブジェクトを作成しようとしています。KeyFilter属性を持つコンストラクタのAutofacコンフィグレーション
public class Service : IService
{
public Service([KeyFilter("eod")]ISimpleMongoClient eodClient,
[KeyFilter("live")]ISimpleMongoClient liveClient
) : base(config)
{
_eodClient = eodClient;
_liveClient = liveClient;
}
}
public class SimpleMongoClient : ISimpleMongoClient
{
public SimpleMongoClient(string connectionString, string database)
{
IMongoClient client = new MongoClient(connectionString);
MongoDatabase = client.GetDatabase(database);
}
}
何らかの形で次の設定を行うと、ISimpleMongoClientパラメータを正しく解決できません。ほかに何が足りないのですか?
{
"components": [
{
"type": "Service, TestProject",
"services": [
{
"type": "IService, TestProject"
}
],
"instanceScope": "single-instance"
},
{
"type": "SimpleMongoClient, TestProject",
"services": [
{
"type": "ISimpleMongoClient, TestProject",
"key": "eod"
}
],
"parameters": {
"connectionString": "mongodb://localhost:27017/?readPreference=primary",
"database": "eod"
},
"instanceScope": "single-instance"
},
{
"type": "SimpleMongoClient, TestProject",
"services": [
{
"type": "ISimpleMongoClient, TestProject",
"key": "live"
}
],
"parameters": {
"connectionString": "mongodb://localhost:27017/?readPreference=primary",
"database": "live"
},
"instanceScope": "single-instance"
}
]
}
説明をありがとう。あなたは構成を介して実行可能にする価値があると思いますか?機能要求としてこれを提起しますか? –
いいえ、コンフィギュレーションは、プログラム設定とのフィーチャフィーチャマッチではありません。あなたがそれを行う必要がある場合は、特別なプログラムビットを持つAutofacモジュールを作成し、モジュールを構成することをお勧めします。例については、ドキュメントを参照してください。 –