实例介绍
EasyNetQ是一个为RabbitMQ设计的.NET API,旨在使在.NET平台上使用RabbitMQ变得尽可能简单。
目标:
- 尽可能简化在.NET上使用RabbitMQ的工作。
连接到RabbitMQ代理:
var bus = RabbitHutch.CreateBus("host=localhost");
发布消息:
await bus.PubSub.PublishAsync(message);
发布具有5秒延迟的消息:
await bus.Scheduler.FuturePublishAsync(message, TimeSpan.FromSeconds(5));
订阅消息:
await bus.PubSub.SubscribeAsync("my_subscription_id", msg => Console.WriteLine(msg.Text));
远程过程调用:
var request = new TestRequestMessage {Text = "Hello from the client! "}; await bus.Rpc.RequestAsync(request);
RPC服务器:
await bus.Rpc.RespondAsync(request => new TestResponseMessage{ Text = request.Text " all done!" } );
【实例截图】
【核心代码】
文件清单
└── EasyNetQ-4992caa62116f50e133bc1575ed126d32a35eb84
├── Assets
│ ├── EasyNetQ.png
│ └── EasyNetQ.snk
├── hall_of_fame.md
├── licence.txt
├── README.md
└── Source
├── Directory.Build.props
├── docker-compose.yml
├── EasyNetQ
│ ├── AdvancedBusEventHandlers.cs
│ ├── AdvancedBusExtensions.Consume.cs
│ ├── AdvancedBusExtensions.FluentTopology.cs
│ ├── AdvancedBusExtensions.Publish.cs
│ ├── AdvancedBusExtensions.Topology.cs
│ ├── Argument.cs
│ ├── ArgumentsExtensions.cs
│ ├── AutoSubscribe
│ │ ├── AutoSubscriberConsumerAttribute.cs
│ │ ├── AutoSubscriberConsumerInfo.cs
│ │ ├── AutoSubscriber.cs
│ │ ├── AutoSubscriberExtensions.cs
│ │ ├── DefaultAutoSubscriberMessageDispatcher.cs
│ │ ├── ForTopicAttribute.cs
│ │ ├── IAutoSubscriberMessageDispatcher.cs
│ │ ├── IConsumeAsync.cs
│ │ ├── IConsume.cs
│ │ └── SubscriptionConfigurationAttribute.cs
│ ├── BlockedEventArgs.cs
│ ├── ChannelDispatcher
│ │ ├── IPersistentChannelDispatcher.cs
│ │ ├── MultiPersistentChannelDispatcher.cs
│ │ ├── PersistentChannelDispatcherExtensions.cs
│ │ ├── PersistentChannelDispatchOptions.cs
│ │ └── SinglePersistentChannelDispatcher.cs
│ ├── ConnectedEventArgs.cs
│ ├── ConnectionConfiguration.cs
│ ├── ConnectionConfigurationExtensions.cs
│ ├── ConnectionString
│ │ ├── AmqpConnectionStringParser.cs
│ │ ├── CompositeConnectionStringParser.cs
│ │ ├── ConnectionStringGrammar.cs
│ │ ├── ConnectionStringParser.cs
│ │ └── IConnectionStringParser.cs
│ ├── ConsumeConfiguration.cs
│ ├── ConsumeConfigurationExtensions.cs
│ ├── ConsumedMessage.cs
│ ├── Consumer
│ │ ├── AckStrategies.cs
│ │ ├── AsyncBasicConsumer.cs
│ │ ├── Base64ErrorMessageSerializer.cs
│ │ ├── ConsumePipeline.cs
│ │ ├── ConsumerConnection.cs
│ │ ├── Consumer.cs
│ │ ├── ConsumerFactory.cs
│ │ ├── DefaultConsumeErrorStrategy.cs
│ │ ├── DefaultErrorMessageSerializer.cs
│ │ ├── HandlerCollection.cs
│ │ ├── HandlerCollectionFactory.cs
│ │ ├── HandlerCollectionPerQueueFactory.cs
│ │ ├── HandlerRegistrationExtensions.cs
│ │ ├── IConsumeErrorStrategy.cs
│ │ ├── IErrorMessageSerializer.cs
│ │ ├── IHandlerCollectionFactory.cs
│ │ ├── IHandlerRegistration.cs
│ │ ├── InternalConsumer.cs
│ │ ├── InternalConsumerFactory.cs
│ │ ├── MessageHandlers.cs
│ │ ├── NoopDefaultConsumer.cs
│ │ └── SimpleConsumeErrorStrategy.cs
│ ├── Conventions.cs
│ ├── DeadLetterExchangeAndMessageTtlScheduler.cs
│ ├── DeadLetterStrategy.cs
│ ├── DefaultCorrelationIdGenerationStrategy.cs
│ ├── DefaultExchangeDeclareStrategy.cs
│ ├── DefaultMessageSerializationStrategy.cs
│ ├── DefaultPubSub.cs
│ ├── DefaultRpc.cs
│ ├── DefaultSendReceive.cs
│ ├── DefaultTypeNameSerializer.cs
│ ├── DelayedExchangeExtensions.cs
│ ├── DelayedExchangeScheduler.cs
│ ├── DeliveryModeAttribute.cs
│ ├── DI
│ │ ├── AsyncServiceResolverScope.cs
│ │ ├── ConnectionFactoryFactory.cs
│ │ ├── IServiceRegister.cs
│ │ ├── IServiceResolver.cs
│ │ ├── IServiceResolverScope.cs
│ │ ├── Lifetime.cs
│ │ ├── LightInjectAdapter.cs
│ │ ├── ServiceRegisterExtensions.cs
│ │ └── ServiceResolverScope.cs
│ ├── DisconnectedEventArgs.cs
│ ├── EasyNetQ.csproj
│ ├── EasyNetQException.cs
│ ├── Events
│ │ ├── AckEvent.cs
│ │ ├── ChannelRecoveredEvent.cs
│ │ ├── ChannelShutdownEvent.cs
│ │ ├── ConnectionBlockedEvent.cs
│ │ ├── ConnectionCreatedEvent.cs
│ │ ├── ConnectionDisconnectedEvent.cs
│ │ ├── ConnectionRecoveredEvent.cs
│ │ ├── ConnectionUnblockedEvent.cs
│ │ ├── ConsumerModelDisposedEvent.cs
│ │ ├── DeliveredMessageEvent.cs
│ │ ├── MessageConfirmationEvent.cs
│ │ ├── PublishedMessageEvent.cs
│ │ ├── ReturnedMessageEvent.cs
│ │ ├── StartConsumingFailedEvent.cs
│ │ ├── StartConsumingSucceededEvent.cs
│ │ └── StoppedConsumingEvent.cs
│ ├── ExchangeAttribute.cs
│ ├── ExchangeDeclareConfiguration.cs
│ ├── ExchangeDeclareConfigurationExtensions.cs
│ ├── ExchangeType.cs
│ ├── FuturePublishConfiguration.cs
│ ├── IAdvancedBus.cs
│ ├── IBus.cs
│ ├── ICorrelationIdGenerationStrategy.cs
│ ├── IEventBus.cs
│ ├── IExchangeDeclareStrategy.cs
│ ├── IMessage.cs
│ ├── IMessageSerializationStrategy.cs
│ ├── Interception
│ │ ├── CompositeProduceConsumerInterceptor.cs
│ │ ├── GZipInterceptor.cs
│ │ ├── IProduceConsumeInterceptor.cs
│ │ ├── ProduceConsumerInterceptorExtensions.cs
│ │ └── TripleDESInterceptor.cs
│ ├── Internals
│ │ ├── ArrayPooledMemoryStream.cs
│ │ ├── AsyncCache.cs
│ │ ├── AsyncCountdownEvent.cs
│ │ ├── AsyncLock.cs
│ │ ├── AsyncQueue.cs
│ │ ├── CancellationTokenExtensions.cs
│ │ ├── ConcurrentDictionaryExtensions.cs
│ │ ├── DictionaryExtensions.cs
│ │ ├── DisposableAction.cs
│ │ ├── EmptyMemoryOwner.cs
│ │ ├── NumberHelpers.cs
│ │ ├── ReadOnlyMemoryStream.cs
│ │ ├── ReflectionHelpers.cs
│ │ ├── StringExtensions.cs
│ │ ├── TaskHelpers.cs
│ │ ├── Timers.cs
│ │ └── UriExtensions.cs
│ ├── IPubSub.cs
│ ├── IReceiveRegistration.cs
│ ├── IRpc.cs
│ ├── IScheduler.cs
│ ├── ISendReceive.cs
│ ├── ISerializer.cs
│ ├── ITypeNameSerializer.cs
│ ├── LegacyRpcConventions.cs
│ ├── LegacyTypeNameSerializer.cs
│ ├── Logging
│ │ ├── ConcurrentColoredConsole.cs
│ │ ├── ConsoleLogger.cs
│ │ ├── ILogger.cs
│ │ ├── LoggerExtensions.cs
│ │ ├── LogLevel.cs
│ │ ├── MessageFormatter.cs
│ │ └── NoopLogger.cs
│ ├── MessageDeliveryMode.cs
│ ├── MessageDeliveryModeStrategy.cs
│ ├── MessageFactory.cs
│ ├── MessageProperties.cs
│ ├── MessagePropertiesExtensions.cs
│ ├── MessageReceivedInfo.cs
│ ├── MessageReturnedEventArgs.cs
│ ├── MessageReturnedInfo.cs
│ ├── MessageVersioning
│ │ ├── ISupersede.cs
│ │ ├── MessageTypeProperty.cs
│ │ ├── MessageVersionStack.cs
│ │ ├── VersionedExchangeDeclareStrategy.cs
│ │ └── VersionedMessageSerializationStrategy.cs
│ ├── MultipleExchange
│ │ └── MultipleExchangeDeclareStrategy.cs
│ ├── NonGenericPubSubExtensions.cs
│ ├── NonGenericRpcExtensions.cs
│ ├── NonGenericSchedulerExtensions.cs
│ ├── NonGenericSendReceiveExtensions.cs
│ ├── OverflowType.cs
│ ├── Persistent
│ │ ├── ActionBasedPersistentChannelAction.cs
│ │ ├── AmqpErrorCodes.cs
│ │ ├── FuncBasedPersistentChannelAction.cs
│ │ ├── IPersistentChannel.cs
│ │ ├── IPersistentChannelFactory.cs
│ │ ├── IPersistentConnection.cs
│ │ ├── PersistentChannel.cs
│ │ ├── PersistentChannelExtensions.cs
│ │ ├── PersistentChannelFactory.cs
│ │ ├── PersistentConnection.cs
│ │ └── PersistentConnectionType.cs
│ ├── ProducedMessage.cs
│ ├── Producer
│ │ ├── IPublishConfirmationListener.cs
│ │ ├── IPublishPendingConfirmation.cs
│ │ ├── ProducePipeline.cs
│ │ ├── ProducerConnection.cs
│ │ ├── PublishConfirmationListener.cs
│ │ ├── PublishInterruptedException.cs
│ │ ├── PublishNackedException.cs
│ │ └── PublishReturnedException.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── PublishConfiguration.cs
│ ├── PubSubExtensions.cs
│ ├── PullingConsumer.cs
│ ├── PullingConsumerExtensions.cs
│ ├── PullingConsumerFactory.cs
│ ├── QueueAttribute.cs
│ ├── QueueDeclareConfiguration.cs
│ ├── QueueDeclareConfigurationExtensions.cs
│ ├── QueueMasterLocator.cs
│ ├── QueueMode.cs
│ ├── QueueStats.cs
│ ├── QueueType.cs
│ ├── RabbitAdvancedBus.cs
│ ├── RabbitBus.cs
│ ├── RabbitHutch.cs
│ ├── ReceiveConfiguration.cs
│ ├── ReceiveRegistrationExtensions.cs
│ ├── ReflectionBasedNewtonsoftJsonSerializer.cs
│ ├── RequestConfiguration.cs
│ ├── ResponderConfiguration.cs
│ ├── RpcExtensions.cs
│ ├── SchedulerExtensions.cs
│ ├── SelfHostedBus.cs
│ ├── SendConfiguration.cs
│ ├── SendReceiveExtensions.cs
│ ├── ServiceRegisterExtensions.cs
│ ├── Sprache
│ │ ├── Failure.cs
│ │ ├── IFailure.cs
│ │ ├── Input.cs
│ │ ├── IResultOfT.cs
│ │ ├── ISuccess.cs
│ │ ├── Parse.cs
│ │ ├── ParseException.cs
│ │ ├── ParserOfT.cs
│ │ ├── ResultHelper.cs
│ │ └── Success.cs
│ ├── SubscriptionConfiguration.cs
│ ├── SubscriptionResult.cs
│ ├── SystemMessages
│ │ └── Error.cs
│ ├── Topology
│ │ ├── Binding.cs
│ │ ├── Exchange.cs
│ │ ├── IBindable.cs
│ │ └── Queue.cs
│ └── UnblockedEventArgs.cs
├── EasyNetQ.ApprovalTests
│ ├── ApprovalTests.cs
│ ├── EasyNetQ.ApprovalTests.csproj
│ ├── EasyNetQ.approved.txt
│ ├── EasyNetQ.DI.Autofac.approved.txt
│ ├── EasyNetQ.DI.LightInject.approved.txt
│ ├── EasyNetQ.DI.Microsoft.approved.txt
│ ├── EasyNetQ.DI.Ninject.approved.txt
│ ├── EasyNetQ.DI.Windsor.approved.txt
│ ├── EasyNetQ.Logging.Microsoft.approved.txt
│ ├── EasyNetQ.Logging.Serilog.approved.txt
│ ├── EasyNetQ.Serialization.NewtonsoftJson.approved.txt
│ ├── EasyNetQ.Serialization.SystemTextJson.approved.txt
│ └── GlobalUsings.cs
├── EasyNetQ.DI.Autofac
│ ├── AutofacAdapter.cs
│ ├── EasyNetQContainerBuilderExtensions.cs
│ └── EasyNetQ.DI.Autofac.csproj
├── EasyNetQ.DI.LightInject
│ ├── EasyNetQ.DI.LightInject.csproj
│ └── EasyNetQServiceContainerExtensions.cs
├── EasyNetQ.DI.Microsoft
│ ├── EasyNetQ.DI.Microsoft.csproj
│ ├── EasyNetQServiceCollectionExtensions.cs
│ └── ServiceCollectionAdapter.cs
├── EasyNetQ.DI.Ninject
│ ├── EasyNetQ.DI.Ninject.csproj
│ ├── EasyNetQKernelExtensions.cs
│ └── NinjectAdapter.cs
├── EasyNetQ.DI.Tests
│ ├── BusCreationTest.cs
│ ├── ContainerAdaptersData.cs
│ ├── ContainerAdapterTests.cs
│ ├── EasyNetQ.DI.Tests.csproj
│ ├── GlobalUsings.cs
│ ├── MicrosoftDependencyScopeTests.cs
│ └── ResolverFactory.cs
├── EasyNetQ.DI.Windsor
│ ├── EasyNetQ.DI.Windsor.csproj
│ ├── EasyNetQWindsorContainerExtensions.cs
│ ├── RemovableNamingSubSystem.cs
│ ├── WindsorAdapter.cs
│ └── WindsorContainerExtensions.cs
├── EasyNetQ.Examples.DlxRetry
│ ├── EasyNetQ.Examples.DlxRetry.csproj
│ └── EntryPoint.cs
├── EasyNetQ.Examples.PubSubWithAdvancedApi
│ ├── EasyNetQ.Examples.PubSubWithAdvancedApi.csproj
│ └── EntryPoint.cs
├── EasyNetQ.Examples.Rpc
│ ├── EasyNetQ.Examples.Rpc.csproj
│ └── EntryPoint.cs
├── EasyNetQ.Hosepipe
│ ├── ArgParser.cs
│ ├── EasyNetQ.Hosepipe.csproj
│ ├── EasyNetQHosepipeException.cs
│ ├── ErrorRetry.cs
│ ├── FileMessageWriter.cs
│ ├── HosepipeConnection.cs
│ ├── HosepipeMessage.cs
│ ├── IErrorRetry.cs
│ ├── IMessageReader.cs
│ ├── IMessageWriter.cs
│ ├── IQueueInsertion.cs
│ ├── MessageReader.cs
│ ├── Program.cs
│ ├── QueueInsertion.cs
│ ├── QueueParameters.cs
│ ├── QueueRetrieval.cs
│ └── Usage.txt
├── EasyNetQ.Hosepipe.Tests
│ ├── ArgParserTests.cs
│ ├── EasyNetQ.Hosepipe.Tests.csproj
│ ├── ErrorMessageRepublishSpike.cs
│ ├── ErrorRetryTests.cs
│ ├── FileMessageWriterTests.cs
│ ├── GlobalUsings.cs
│ ├── Helper.cs
│ ├── MessageReaderTests.cs
│ ├── ProgramIntegrationTests.cs
│ ├── ProgramTests.cs
│ ├── QueueInsertionTests.cs
│ ├── QueueRetrievalTests.cs
│ ├── TestExtensions.cs
│ ├── Traits
│ │ ├── CategoryAttribute.cs
│ │ ├── Category.cs
│ │ ├── CategoryDiscoverer.cs
│ │ └── ExplicitAttribute.cs
│ └── xunit.runner.json
├── EasyNetQ.IntegrationTests
│ ├── Advanced
│ │ ├── When_connected_event_raised.cs
│ │ ├── When_consumer_callback_does_not_respect_ct.cs
│ │ ├── When_consumer_with_auto_ack.cs
│ │ ├── When_declare_an_exchange_with_different_properties.cs
│ │ ├── When_declare_a_queue.cs
│ │ ├── When_delete_a_queue_with_name.cs
│ │ ├── When_published_with_mandatory_and_with_publisher_confirms.cs
│ │ ├── When_publish_to_non_existent_exchange.cs
│ │ ├── When_pull_messages_batch.cs
│ │ └── When_pull_messages.cs
│ ├── DockerProxy.cs
│ ├── EasyNetQ.IntegrationTests.csproj
│ ├── GlobalUsings.cs
│ ├── PubSub
│ │ ├── When_publish_and_subscribe_polymorphic.cs
│ │ ├── When_publish_and_subscribe_with_custom_prefetch_count.cs
│ │ ├── When_publish_and_subscribe_with_default_options.cs
│ │ ├── When_publish_and_subscribe_with_exclusive.cs
│ │ ├── When_publish_and_subscribe_with_priority.cs
│ │ ├── When_publish_and_subscribe_with_publish_confirms_and_multi_channel_dispatcher.cs
│ │ ├── When_publish_and_subscribe_with_publish_confirms.cs
│ │ ├── When_publish_and_subscribe_with_queue_type.cs
│ │ └── When_publish_and_subscribe_with_topic.cs
│ ├── RabbitMQFixtureCollection.cs
│ ├── RabbitMQFixture.cs
│ ├── Rpc
│ │ ├── Messages.cs
│ │ ├── When_request_and_respond_inflight_during_shutdown.cs
│ │ ├── When_request_and_respond_polymorphic.cs
│ │ ├── When_request_and_respond_with_default_options.cs
│ │ ├── When_request_and_respond_with_legacy_options.cs
│ │ └── When_request_and_respond_with_publish_confirms.cs
│ ├── Scheduler
│ │ ├── When_future_publish_using_dead_letter_exchange.cs
│ │ ├── When_future_publish_using_dead_letter_exchange_with_publish_confirms.cs
│ │ ├── When_future_publish_using_dead_letter_exchange_with_topic.cs
│ │ ├── When_future_publish_using_delayed_exchange.cs
│ │ └── When_future_publish_using_delayed_exchange_with_publish_confirms.cs
│ ├── SendReceive
│ │ ├── When_send_receive_with_default_options.cs
│ │ ├── When_send_receive_with_multiple_message_types.cs
│ │ └── When_send_receive_with_publish_confirms.cs
│ └── Utils
│ ├── BusExtensions.cs
│ ├── ManagementClientExtensions.cs
│ ├── Messages.cs
│ ├── MessagesFactories.cs
│ └── MessagesSink.cs
├── EasyNetQ.Logging.Microsoft
│ ├── EasyNetQ.Logging.Microsoft.csproj
│ ├── MicrosoftLoggerAdapter.cs
│ └── ServiceRegisterExtensions.cs
├── EasyNetQ.Logging.Serilog
│ ├── EasyNetQ.Logging.Serilog.csproj
│ ├── SerilogLoggerAdapter.cs
│ └── ServiceRegisterExtensions.cs
├── EasyNetQ.Serialization.NewtonsoftJson
│ ├── EasyNetQ.Serialization.NewtonsoftJson.csproj
│ ├── NewtonsoftJsonSerializer.cs
│ └── ServiceRegisterExtensions.cs
├── EasyNetQ.Serialization.SystemTextJson
│ ├── EasyNetQ.Serialization.SystemTextJson.csproj
│ ├── JsonHeaderExtensions.cs
│ ├── JsonHeaderType.cs
│ ├── JsonSerializerOptionsExtensions.cs
│ ├── MessagePropertiesConverter.cs
│ ├── ServiceRegisterExtensions.cs
│ ├── SystemObjectNewtonsoftCompatibleConverter.cs
│ ├── SystemTextJsonSerializer.cs
│ └── SystemTextJsonSerializerV2.cs
├── EasyNetQ.Serialization.Tests
│ ├── EasyNetQ.Serialization.Tests.csproj
│ ├── GlobalUsings.cs
│ ├── SerializerTests.cs
│ └── ServiceRegisterExtensionsTests.cs
├── EasyNetQ.sln
├── EasyNetQ.sln.DotSettings
├── EasyNetQ.Tests
│ ├── AdvancedBusEventHandlersTests.cs
│ ├── AutoSubscriberTests
│ │ ├── When_auto_subscribing_async.cs
│ │ ├── When_auto_subscribing_async_with_subscription_configuration_action_and_attribute.cs
│ │ ├── When_auto_subscribing_async_with_subscription_configuration_action.cs
│ │ ├── When_auto_subscribing_async_with_subscription_configuration.cs
│ │ ├── When_auto_subscribing.cs
│ │ ├── When_auto_subscribing_with_explicit_implementation.cs
│ │ ├── When_auto_subscribing_with_subscription_configuration_action_and_attribute.cs
│ │ ├── When_auto_subscribing_with_subscription_configuration_action.cs
│ │ ├── When_auto_subscribing_with_subscription_configuration_attribute_no_expires.cs
│ │ └── When_auto_subscribing_with_subscription_configuration.cs
│ ├── BasicProperties.cs
│ ├── BlockedConnectionNotificationTests.cs
│ ├── ChannelDispatcherTests
│ │ ├── When_an_action_is_invoked_that_throws_using_multi_channel.cs
│ │ ├── When_an_action_is_invoked_that_throws_using_single_channel.cs
│ │ ├── When_an_action_is_invoked_using_multi_channel.cs
│ │ └── When_an_action_is_invoked_using_single_channel.cs
│ ├── ConnectionConfigurationExtensionsTests.cs
│ ├── ConnectionString
│ │ ├── AmqpConnectionStringParserTests.cs
│ │ ├── ConnectionStringGrammarTests.cs
│ │ └── ConnectionStringParserTests.cs
│ ├── ConnectionStringTests.cs
│ ├── ConsumerTests
│ │ ├── Given_a_сonsumer.cs
│ │ ├── When_a_сonsumer_is_created.cs
│ │ ├── When_disposed.cs
│ │ └── When_the_connection_is_broken.cs
│ ├── ConsumeTests
│ │ ├── AckStrategyTests.cs
│ │ ├── ConsumerTestBase.cs
│ │ ├── DefaultConsumerErrorStrategyTests.cs
│ │ ├── HandlerCollectionTests.cs
│ │ ├── When_a_cancellation_error_occurs_in_the_message_handler.cs
│ │ ├── When_a_consumer_has_multiple_handlers.cs
│ │ ├── When_a_consumer_is_cancelled_by_the_broker.cs
│ │ ├── When_a_consumer_is_cancelled_by_the_user.cs
│ │ ├── When_a_consumer_is_cancelled_via_soft_error.cs
│ │ ├── When_a_consumer_is_started_on_exclusive_queue_and_connection_is_dropped.cs
│ │ ├── When_a_message_is_delivered_to_the_consumer.cs
│ │ ├── When_a_message_is_received.cs
│ │ ├── When_a_nack_received_from_the_message_handler.cs
│ │ ├── When_an_error_occurs_in_the_message_handler.cs
│ │ ├── When_a_polymorphic_message_is_delivered_to_the_consumer.cs
│ │ ├── When_a_responder_is_cancelled.cs
│ │ ├── When_cancellation_of_message_handler_occurs.cs
│ │ ├── When_consume_is_called.cs
│ │ └── When_consume_is_called_with_auto_ack.cs
│ ├── ConventionsTests.cs
│ ├── DefaultMessageConsumerTests.cs
│ ├── DefaultMessageSerializationStrategyTests.cs
│ ├── DefaultTypeNameSerializerTests.cs
│ ├── DeliveryModeStrategyTest.cs
│ ├── EasyNetQ.Tests.csproj
│ ├── EventBusTests.cs
│ ├── ExchangeQueueBindingTests.cs
│ ├── FluentConfiguration
│ │ ├── PublishConfigurationTests.cs
│ │ └── SubscriptionConfigurationTests.cs
│ ├── GlobalUsings.cs
│ ├── Interception
│ │ └── BuildInInterceptorsTests.cs
│ ├── InternalConsumerTests
│ │ └── InternalConsumerTests.cs
│ ├── Internals
│ │ ├── ArrayPooledMemoryStreamTests.cs
│ │ ├── AsyncLockTests.cs
│ │ ├── AsyncQueueTests.cs
│ │ ├── NumberHelpersTests.cs
│ │ └── TaskExtensionsTests.cs
│ ├── LegacyTypeNameSerializerTests.cs
│ ├── Logging
│ │ └── MessageFormatterTests.cs
│ ├── MessageFactoryTests.cs
│ ├── MessagePropertiesTests.cs
│ ├── Messages.cs
│ ├── MessageVersioningTests
│ │ ├── MessageTypePropertyTests.cs
│ │ ├── MessageVersioningExtensionsTests.cs
│ │ ├── MessageVersionStackTests.cs
│ │ ├── MyMessageV2.cs
│ │ ├── MyMessageV3.cs
│ │ ├── VersionedExchangeDeclareStrategyTests.cs
│ │ └── VersionedMessageSerializationStrategyTests.cs
│ ├── MessageWithVeryVEryVEryLongNameThatWillMostCertainlyBreakAmqpsSilly255CharacterNameLimitThatIsAlmostCertainToBeReachedWithGenericTypes.cs
│ ├── Mocking
│ │ └── MockBuilder.cs
│ ├── ModelCleanupTests.cs
│ ├── NonGenericPubSubExtensionsTests.cs
│ ├── NonGenericRpcExtensionsTests.cs
│ ├── NonGenericSchedulerExtensionsTests.cs
│ ├── NonGenericSendExtensionsTests.cs
│ ├── PersistentChannelTests
│ │ ├── When_an_action_is_invoked.cs
│ │ ├── When_an_action_is_performed_on_a_broken_channel.cs
│ │ ├── When_an_action_is_performed_on_a_closed_channel_that_doesnt_open_again.cs
│ │ └── When_an_action_is_performed_on_a_closed_channel_that_then_opens.cs
│ ├── PersistentConnectionTests.cs
│ ├── ProducerTests
│ │ ├── PublishConfirmationListenerTest.cs
│ │ ├── PublishExchangeDeclareStrategyTests.cs
│ │ ├── When_a_message_is_sent.cs
│ │ ├── When_a_polymorphic_message_is_sent.cs
│ │ ├── When_a_request_is_sent_but_an_exception_is_thrown_by_responder.cs
│ │ ├── When_a_request_is_sent_but_no_reply_is_received.cs
│ │ ├── When_a_request_is_sent_but_the_connection_closes_before_a_reply_is_received.cs
│ │ ├── When_a_request_is_sent.cs
│ │ └── When_IModel_throws.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── PublishExchangeDeclareStrategyExtensions.cs
│ ├── PublishTests.cs
│ ├── RabbitAdvancedBusTests.cs
│ ├── ReflectionHelpersTests.cs
│ ├── SerializationTests.cs
│ ├── SomeRandomClass.cs
│ ├── StubCorrelationIdGenerator.cs
│ ├── SubscribeTests.cs
│ ├── TestMessage.cs
│ ├── When_using_default_consume_error_strategy.cs
│ └── xunit.runner.json
├── FodyWeavers.xml
├── FodyWeavers.xsd
├── NuGet.Config
└── Tests.props
62 directories, 494 files
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论