2010-11-16 7 views
1

Je ne peux pas utiliser mon implémentation ISubscriptionStorage personnalisée lorsque j'utilise autre chose que l'hôte générique. Je ne suis pas vraiment sûr pourquoi. Je reçois une exception de "Impossible de publier sur ce point de terminaison - aucun stockage d'abonnement n'a été configuré. Ajoutez" MsmqSubscriptionStorage() "ou" DbSubscriptionStorage() "après" NServiceBus.Configure.With() "." Seulement je ne veux pas utiliser ces options parce que je veux utiliser mon option personnalisée.NServiceBus: Implémentation ISubscriptionStorage personnalisée sans hôte générique

Voici ce que j'ai que ça ne:

public class Program 
{ 
    static void Main() 
    { 
     var bus = Configure.With() 
      .CustomConfigurationSource(new UserConfigurationSource() 
       .Register(() => new MsmqTransportConfig()) 
       .Register(() => new UnicastBusConfig())) 
      .DefaultBuilder() 
      .XmlSerializer() 
      .MsmqTransport() 
      .IsTransactional(true) 
      .UnicastBus() 
      .CreateBus() 
      .Start(); 

     Configure.Instance.Configurer.ConfigureComponent<StreamSubscriptionStorage>(ComponentCallModelEnum.Singleton); 

     Console.WriteLine("This will publish IEvent and EventMessage alternately."); 
     Console.WriteLine("Press 'Enter' to publish a message.To exit, Ctrl + C"); 

     bool publishIEvent = true; 

     while (Console.ReadLine() != null) 
     { 
      var eventMessage = publishIEvent ? bus.CreateInstance<IEvent>() : new EventMessage(); 

      eventMessage.EventId = Guid.NewGuid(); 
      eventMessage.Time = DateTime.Now.Second > 30 ? (DateTime?)DateTime.Now : null; 
      eventMessage.Duration = TimeSpan.FromSeconds(99999D); 

      bus.Publish(eventMessage); 

      Console.WriteLine("Published event."); 

      publishIEvent = !publishIEvent; 
     } 
    } 
} 

Répondre

2

Vous devez configurer votre stockage d'abonnement personnalisé avant de commencer le bus. Vous pouvez le faire en incluant .RunCustomAction (votre code ici) dans l'initialisation fluide.

Questions connexes