私は C# の初心者であることを認め、次の質問があります。
3 つのプロジェクト (A、B、C) を持つソリューションがあるとします。プロジェクト C は B を参照し、B と C の両方が A を参照します。B はエントリ ポイントの場所です。プロジェクト A 内のクラスの 1 つにリストがあります。次のようになります。
プロジェクト A:
public class ProcessDuration
{
public List<TicketTimer> DurationList = new List<TicketTimer>();
public void AddProcesstime(string Ticket, int Count, Process_Step Step, Process_Status Status, DateTime Time)
{
Ticket ccStart = new Ticket();
ccStart.RecordTime(Ticket, Count, Step, Status, Time);
DurationList.Add(ccStart);
}
...
}
プロジェクト B:
class testB
{
public TicketProcessDuration TD = new TicketProcessDuration();
TD.StartProcessMonitor(ticketMain, request.DataRecords.Count);
}
プロジェクト C:
class testC
{
TD.StartProcessMonitor(ticketMain, request.DataRecords.Count); //Error here because TD scope
}
プロジェクト B と C からリストに追加したいので、B 内に ProjectDuration クラスのオブジェクトを作成します。しかし、プロジェクト C からはスコープの関係でアクセスできません。リストを静的にして、プロジェクト C でオブジェクト TD を作成してみましたが、別の問題が発生しました。アプリの有効期間のリストを維持しますが、実行ごとにリストを空にしたいのです。関数を定義して ProjectDuration オブジェクトを B から C に渡したくありません。また、これが Web サービス アプリケーションであることもわかっているため、複数の接続でリストが繰り返される可能性があるため、1 回の実行後にクリアすることはできません。
何をアドバイスしますか?この問題を解決するにはどうすればよいですか? また、ガベージ コレクターの前にオブジェクト TD を破棄する方法を知りたいですか?
緊急の助けをいただければ幸いです。これらの状況をよりよく理解するためにいくつかの分野を読む必要があるかどうか教えてください...しかし、最初に解決策を!
敬具、