次の問題:
RabbitMQを使用してAPIに接続するWCFサービスを開発しています。DIコンテナとしてスプリングを使用しています。
コンシューマークラスを作成しました(rabbit MQ +ロギング用のカスタムロジック)
トリミングされたバージョン:
public class Consumer : DefaultBasicConsumer
{
public Consumer(IModel channel)
: base(channel)
{}
}
そして、ConnectionManagerクラスがあります。
public class ConnectionManager
{
public IModel Channel { get; set; }
public IConnection Connection { get; set; }
private readonly ConnectionFactory _connectionFactory;
public ConnectionManager()
{
_connectionFactory = SetupConnectionFactory();
Connection = _connectionFactory.CreateConnection();
Channel = Connection.CreateModel();
}
}
ここで問題は、Spring.NETですべてを配線するときです。ConnectionManagerクラスのChannelプロパティをConsumerコンストラクターに注入します。
これまでのSpring構成(トリミング):
<spring>
<context>
<resource uri="config://spring/objects"/>
</context>
<object name="connectionManager" type="Epex.ConnectionManager, EpexData" singleton="true"/>
<object name="consumer" type="Epex.Consumer, EpexData">
<constructor-arg ref="Do something funky here"/>
</object>
</spring>
では、ここでDo Somethingファンキーに何を配置しますか?
コンシューマーにConnectionManagerを書き直して挿入することもできます(最後のオプション)