You can get information by looking at the stack trace:
StackTrace stackTrace = new StackTrace();
StackFrame[] stackFrames = stackTrace.GetFrames();
string methodName = stackFrames[0].GetMethod().Name;
string type = stackFrames[0].GetType().ToString();
, - . , . , .
public interface ILogger
{
void Log(string message);
}
public class MyWorkerClass
{
private ILogger m_Logger;
public MyWorkerClass(ILogger logger)
{
m_Logger = logger;
}
public void Work()
{
m_Logger.Log("working")
}
}
public class MyService
{
public void DoSomething()
{
ILogger logger = new MyServiceLogger();
MyWorkerClass worker = new MyWorkerClass(logger);
worker.Work();
}
}