0
以下問題:由其他依賴創建的對象的.NET .NET構造器注入
我正在開發一個使用RabbitMQ連接到API的WCF服務。我們使用彈簧作爲DI容器。
我們做了一個消費類(兔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>
那麼我放在做一些時髦嗎?
我們也可以重寫,並在消費者(最後選項)注入的ConnectionManager
一種解決方案張貼在這裏http://stackoverflow.com/問題/ 6739899/spring-net-propertyretrievingfactoryobject-property-is-null。您可以在SpEL中使用「PropertyRetrievingFactoryObject」或表達式。文檔:http://www.springframework.net/doc-latest/reference/html/objects.html#objects-advancedproperty-setting – Andreas 2012-08-18 12:52:06