コード例 #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="AzureTopicPublisher{T}"/> class.
        /// </summary>
        /// <param name="context">The context</param>
        /// <param name="topicClientProvider">The topic client provider</param>
        public AzureTopicPublisher(Context context, ITopicClientProvider topicClientProvider)
        {
            _context = context ?? throw new ArgumentNullException(nameof(context));
            if (topicClientProvider == null)
            {
                throw new ArgumentNullException(nameof(topicClientProvider));
            }

            var attribute = typeof(T).GetCustomAttribute <TopicAttribute>();

            if (attribute == null)
            {
                throw new MessagingException($"Topic message should be decorated with the {nameof(TopicAttribute)}.");
            }

            _topicClient = topicClientProvider.Get(attribute.TopicName);
            _timeToLive  = attribute.TimeToLive;
        }
コード例 #2
0
 public AzureServiceBusMessageProducer(IManagementClientWrapper managementClientWrapper, ITopicClientProvider topicClientProvider)
 {
     _managementClientWrapper = managementClientWrapper;
     _topicClientProvider     = topicClientProvider;
 }
コード例 #3
0
 public AzureServiceBusMessageProducer(IManagementClientWrapper managementClientWrapper, ITopicClientProvider topicClientProvider, OnMissingChannel makeChannel = OnMissingChannel.Create)
 {
     _managementClientWrapper = managementClientWrapper;
     _topicClientProvider     = topicClientProvider;
     _makeChannel             = makeChannel;
 }