【发布时间】:2021-01-02 00:44:38
【问题描述】:
我有一个类公开一个接受 Func 委托并异步运行它的公共方法 (ExecuteJob)。我需要了解以下信息:
- 调用者(调用 ExecuteJob 的类和方法名)
- 用于调用 Func 委托的参数列表及其值
- 如果可能,在运行 Func 委托之前,设置此委托的特定参数的值
示例代码
public static class JobHandlerManager
{
public static async Task ExecuteJob<T>(Func<T> MetodoDaEseguire)
{
Params parOfMethod = MetodoDaEseguire.GetMethodParams();
// here I need to get info about above points
string Caller = "ExternalMethod"
string Parameters = "\"par1\" = \"a\", \"par2\" = 10, \"par3\" = [\"x\", \"y\", \"z\"] "
int JobID = CalculateJobId();
parOfMethod = parOfMetho.add(JobID);
Func<T> NewMethod = MetodoDaEseguire(parOfMethod);
Task.Run(MetodoDaEseguire);
}
}
public void DoStuff(string par1, int par 2, string[] arraypar, int JobID)
{
// JobID is set by JobHandlerManager.ExecuteJob
}
public void ExternalMethod()
{
JobHandlerManager.ExecuteJob(() => DoStuff("a", 10, new string[] {"x", "y", "z"}));
}
【问题讨论】: