私が取り組んでいるプロジェクトでは、特定の時点でいくつかの実行が必要です。私はこの状況に対処する最良の方法が何であるかはわかりません。このメソッドは、サーバーの再始動/保守に耐えられる必要があります。また、メソッド呼び出しはプログラムで行う必要があります。 、私はタスクID(PK)、TaskName:指定(varchar型)、TaskStatus(列挙型の成功を持っている可能性がTaskTableと呼ばれるデータベース内のテーブル(あるいはメッセージキュー)を持つことができc#信頼できる遅延実行/スケジュール実行のベストプラクティス
:
私はこの道を下って行く検討しています失敗した、スケジュールされた)およびTimeOfExecution。しかし、私は、実行されていないタスクについてデータベースを定期的にポーリングするWindowsサービスが必要です。私が直面している問題は、次のことです。データベースに保存するTaskNameとして何を使用しますか?クラス名?クラスとメソッド名ToString?そして、私はどのように文字列を変換して、プログラムで呼び出しを呼び出すことができますか(私は巨大なswitch文を持ちたくありません)?視覚障害のタスクは以下のようになります。だから私は、データベースへとretrival呼び出し上で保存タスクの名前「SendIncompleteNotification」とクラス名を取得することができるように定義さをプログラム
public static Task<string> SendIncompleteNotification
{
get
{
return new Task<string>
(
a => Console.WriteLine("Sample Task")
, "This is a sample task which does nothing."
);
}
}
今私はprogrmaticallyメソッド/プロパティ名を保存中に問題が生じていますされる問題。
var type = ApplicationTask.SendIncompleteNotification.GetType();
//type.Name shows "Task`1" rather than SendIncompleteNotification
この状況を処理する方法はありますか?ありがとう!
更新日: 私の頭が回転していました。私は今私が間違っていたことが、私の仕事を返すための別の方法/財産を持っていることに気づいた。私がしなければならなかったことは、私の仕事から新しいクラスを鎮圧することでした。そして、私は簡単にクラス名を取得し、dbに文字列を保存し、後で退職して呼び出すことができます。
私は答えを –
更新しました申し訳ありません私の頭が回転していた。私は今私が間違っていたことが、私の仕事を返すために別の方法/財産を持っていることに気付いた。。私がしなければならなかったことは、私の仕事で新しいクラスを恒久化することでした。。そして私は簡単にクラス名を得ることができます。 –
Jeff
あなたに感謝して、私は答えとしてあなたの答えをマークします – Jeff