public void Build()
 {
     if (_timeouts == null)
     {
         _timeouts = new BusTimeouts();
     }
     if (_typeStrategy == null)
     {
         _typeStrategy = new AttributeTypeSerializationStrategy(_messageTypes);
     }
     if (_dataStrategy == null)
     {
         _dataStrategy = new JsonDataSerializationStrategy(_typeStrategy);
     }
     if (_extApiConfigurators.Count > 0)
     {
         var extConfig = new ExtApiConfiguration();
         foreach (var configurator in _extApiConfigurators)
         {
             configurator(extConfig);
         }
         var imodule = new ExtApiIntegrationModule(extConfig);
         AddModule(imodule);
         AddMessageType <ExtApiDataRequest>();
         AddMessageType <ExtApiDataResponse>();
         AddMessageType <ExtApiStatusResponse>();
     }
     _finished = true;
 }
 public IBusConfiguration SetTypeSerializationStrategy(ITypeSerializationStrategy strategy)
 {
     ThrowIfFinished();
     if (strategy == null)
     {
         throw new ArgumentNullException("strategy");
     }
     _typeStrategy = strategy;
     return(this);
 }
 public JsonDataSerializationStrategy(ITypeSerializationStrategy typeSerializer)
 {
     _typeSerializer = typeSerializer;
 }