-
Notifications
You must be signed in to change notification settings - Fork 0
/
Utilities.cs
48 lines (42 loc) · 1.47 KB
/
Utilities.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System.Diagnostics;
namespace Tetron.Mim.SynchronisationScheduler
{
public static class Utilities
{
/// <summary>
/// Retrieves the full namespace (including class) of the method that called the current one.
/// </summary>
internal static string GetCallingClassName()
{
var stackTrace = new StackTrace();
var frame = stackTrace.GetFrame(2);
if (frame == null)
return string.Empty;
var method = frame.GetMethod();
if (method == null)
return string.Empty;
var declaringType = method.DeclaringType;
return declaringType != null ? declaringType.FullName : string.Empty;
}
/// <summary>
/// Retrieves the name of the method that called the current one.
/// </summary>
internal static string GetCallingMethodName()
{
var stackTrace = new StackTrace();
var frame = stackTrace.GetFrame(2);
if (frame == null)
return string.Empty;
var method = frame.GetMethod();
return method == null ? string.Empty : method.Name;
}
/// <summary>
/// To be used by any executable that needs to be called by the Synchronisation Scheduler and report its outcome.
/// </summary>
public enum SynchronisationTaskExitCode
{
Success = 0,
Error = 1
}
}
}