static void Main(string[] args)
{
  var factory = new ConnectionFactory();
  factory.Uri = new Uri("amqp://guest:guest@localhost:5672");
  using var connection = factory.CreateConnection();
  IModel channel = connection.CreateModel();

  //Exchange adımızı ve tipimizi aşağıdaki gibi düzenliyoruz.
  channel.ExchangeDeclare(exchange: "logs-header", type: ExchangeType.Headers, durable: true);

  /*Mesajımızı iletirken headerda göndermek üzere bir key-value obje oluşturalım.*/
  Dictionary<string, object> header = new Dictionary<string, object>();
  header.Add("logLevel", "Error");
  header.Add("reportFormat", "pdf");

  //Oluşturulan header'ı, aşağıdaki gibi Headers'a eşitleyelim
  var properties = channel.CreateBasicProperties();
  properties.Headers = header;

  //Örnek bir rapor oluştuğunu varsayalım.
  var message = Encoding.UTF8.GetBytes("----Kritik_Hata_Raporu.pdf----");

  /*Exchange tipimizi belirtiyoruz, route key kullanamdığımız için boş
    geçiyoruz. Mesajımızın header'ını doldurduğumuz için yukarıda
    tanımladığımız propertiyi ve son olarak da mesajımızı ekliyoruz. */
  channel.BasicPublish(exchange:"logs-header",routingKey:string.Empty, basicProperties:properties, body : message);

  Console.WriteLine("Kritik_Hata_Raporu.pdf RabbitMQ'ya gönderilmiştir.");
  
  Console.ReadKey();
}