Como obter o nome da classe atual em C# (nome da própria classe)?
Olá a todos! Sou um desenvolvedor C# iniciante e me deparei com o seguinte problema. Estou escrevendo um pequeno logger para minha aplicação e preciso que, em cada mensagem de log, o nome da classe da qual o método de logging foi chamado seja indicado automaticamente.
Estou tentando diferentes maneiras, mas nada funciona como deveria. Aqui está meu código:
```csharp
public class MyClass
{
public void DoSomething()
{
Logger.Log("Início da operação");
// ... algum código
}
}
public static class Logger
{
public static void Log(string message)
{
// Quero obter "MyClass" aqui
string className = ???? ; // o que colocar aqui?
Console.WriteLine($"[{className}] {message}");
}
}
```
Tentei usar `typeof(MyClass).Name`, mas isso fixa o nome da classe, e se eu copiar este código para outra classe, terei que alterar. Tentei através de `MethodBase.GetCurrentMethod().DeclaringType.Name`, mas isso retorna "Logger", não "MyClass". Também vi em algum lugar `this