私はC#でRabbitMQクライアントを使用する方法についてのチュートリアルを行ってきました。私は、サーバーにハローワールドのメッセージを送信しようとしていると私は送信が成功したことを知っているように私の最後にそれを受け取る。 tutorialは、クラスを送るための以下のクラスファイルの定義を与え、受け取る:rabbitMQと同じメッセージを送受信します
Send.cs
using System;
using RabbitMQ.Client;
using System.Text;
class Send
{
public static void Main()
{
var factory = new ConnectionFactory() { HostName = "localhost" };
using(var connection = factory.CreateConnection())
using(var channel = connection.CreateModel())
{
channel.QueueDeclare(queue: "hello",
durable: false,
exclusive: false,
autoDelete: false,
arguments: null);
string message = "Hello World!";
var body = Encoding.UTF8.GetBytes(message);
channel.BasicPublish(exchange: "",
routingKey: "hello",
basicProperties: null,
body: body);
Console.WriteLine(" [x] Sent {0}", message);
}
Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine();
}
}
Receive.csを
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System;
using System.Text;
class Receive
{
public static void Main()
{
var factory = new ConnectionFactory() { HostName = "localhost" };
using(var connection = factory.CreateConnection())
using(var channel = connection.CreateModel())
{
channel.QueueDeclare(queue: "hello",
durable: false,
exclusive: false,
autoDelete: false,
arguments: null);
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
var body = ea.Body;
var message = Encoding.UTF8.GetString(body);
Console.WriteLine(" [x] Received {0}", message);
};
channel.BasicConsume(queue: "hello",
noAck: true,
consumer: consumer);
Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine();
}
}
}
私はプロジェクトを実行(視覚的でスタジオ)、私は、両方のクラスがを持っているという事実によって引き起こされている定義されている複数のエントリポイントがあるというエラーが出ています方法。私はスタートアッププロジェクトを指定しようとしましたので、どのメインを使うべきか分かっていましたが、そのオプションは見えませんでした。
チュートリアルで両方のファイルが意図的にこのように構成されているため、どのメインを使用するべきかわかりません。私は最近C++でプログラミングをしていたので、C#ではやや錆びています。
両方のクラスをインスタンス化するメインファイルがあるはずですか?そうでない場合、プロジェクトはどのように構成されるべきですか?
別々に実行する必要があるようです。 VSを実行したい場合は、別のインスタンスで開き、[送信]、[受信]の順に実行します。 –
@VivekChavda VSで実行している場合、それらのプロジェクトが別々のプロジェクトになるはずですか? – loremIpsum1771
はい、別々の実行可能ファイルが作成されるため、別々のプロジェクトになります。 http://stackoverflow.com/questions/4775187/visual-studio-how-to-create-a-project-that-would-compile-2-exe-files –