これをどのようにタイトル付けするかは不明でした。私は次のコードを持っています:複数の一般的な実装を表現する方が良い
builder.Register(context =>
{
var bus = context.Resolve<IBus>();
return bus.CreatePublishRequestClient<IGenerateProjectReport, IGenerateReportResult>(MessagingTimeout);
}).As<IRequestClient<IGenerateProjectReport, IGenerateReportResult>>();
builder.Register(context =>
{
var bus = context.Resolve<IBus>();
return bus.CreatePublishRequestClient<IGenerateInstanceReport, IGenerateReportResult>(MessagingTimeout);
}).As<IRequestClient<IGenerateInstanceReport, IGenerateReportResult>>();
builder.Register(context =>
{
var bus = context.Resolve<IBus>();
return bus.CreatePublishRequestClient<IGenerateInternalReport, IGenerateReportResult>(MessagingTimeout);
}).As<IRequestClient<IGenerateInternalReport, IGenerateReportResult>>();
これを表現する良い方法はありますか?少し冗長だと思われる。
編集:私は別の登録サービスからファクトリメソッドを使用する必要があるため
私は私の知識にレジスタ汎用的な機能を使用することはできません。
[Autofacに登録ジェネリック型](http://stackoverflow.com/questions/15226536/register-generic-type-with-autofac)の可能性の重複を – Igor
@Igorそうではありません。私はその記事で説明されているパターンを使用しており、解決されたサービスからファクトリメソッドを呼び出すので、私の実装はあまり適切ではありません。 – chrisdrobison
インタフェース契約を共有できますか?登録はいくつですか?タイプの制約に基づいてすべてのタイプを自動的に登録する必要がありますか? –