3
私はオブジェクトを私のサガに注入しようとしています。次のエンドポイントを使用して、メッセージがサガのハンドルメソッドに到達したときに、プロパティはnullです。NserviceBusプロパティーインジェクション
エンドポイント:
public class EndpointConfig : IConfigureThisEndpoint, AsA_Server, IWantToRunAtStartup
{
public void Run()
{
IOrderRepository orderRepository = new OrderRepository();
Configure.Instance.Configurer.ConfigureProperty<CreateOrderSaga>(x => x.OrderRepository, orderRepository);
}
// stop method removed
}
app.configを
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core" />
<section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" />
</configSections>
<MsmqTransportConfig
InputQueue="Fulfilment.CreateOrder.OrderRecievedMessage"
ErrorQueue="error"
NumberOfWorkerThreads="1"
MaxRetries="3"
/>
<UnicastBusConfig
DistributorControlAddress=""
DistributorDataAddress="">
<MessageEndpointMappings>
<add Messages="NServiceBus.Saga.TimeoutMessage, NServiceBus" Endpoint="timeoutmanager" />
</MessageEndpointMappings>
</UnicastBusConfig>
</configuration>
と私の佐賀呼び出そうとしたときに
null参照のexpectionがスローされます、次のようにメッセージを受け付けSaveOrder()。依存関係注入を正しく設定しましたか?あなたのInit()
方法で
:(別のクラスにIWantCustomInitialization
を実装)
Configure.Instance.ConfigureComponent<OrderRepository>([The lifecycle you want]);
IWantToRunAtStartup
があるあなただけのコンテナを使用してリポジトリを登録する必要がありますので、
ブリリアント。ありがとう、アンドレアス。それがトリックでした。 – Adam
これで短縮された形式が次のようになりました。Configure.Component(ライフサイクル); –