サービスにサブスクライブし、コールバックを介してイベントが発生したときに通知するサーバー ツールをセットアップしようとしています。サブスクリプション部分が機能しており、イベントがトリガーされるとコールバックにヒットしますが、これをライブラリに持っていて、メイン プロジェクトに取得したいと考えています。デリゲートでやろうと思ったのですが、構文が思いつきません。
ClientSubscriber.cs
/// <summary>
/// Used by Clients to subscribe to a particular queue
/// <param name="type">Subscription type being subscribed to by client</param>
/// <returns></returns>
public bool Subscribe(string type,)
{
bool IsSubscribed = false;
try
{
switch (type)
{
case "Elements":
{
logger.Info("Subscribing toPublisher");
Subscriber.SubscribeToElements(ElementResponse);
logger.Info("Subscription Completed");
IsSubscribed = true;
break;
}
}
}
catch (Exception ex)
{
logger.Error(ex);
}
return IsSubscribed;
}
public void ElementResponse(Element element, SubscriptionEvent.ActionType eventActionType)
{
try
{
// stuff to Do
// Need to Callback to main application
}
catch (Exception ex)
{
logger.Error(ex);
throw;
}
}
Program.cs
static void Main(string[] args)
{
SubscriberClient client = new SubscriberClient();
client.Subscribe("SlateQueueElements");
while (true)
{
ConsoleKeyInfo keyInfo = Console.ReadKey(true);
if (keyInfo.Key == ConsoleKey.X)
break;
}
}
では、Element Response 情報をメイン プロジェクトに戻すにはどうすればよいでしょうか。