Ive a obtenu une méthode d'enregistrement:Comment utiliser la réflexion dans une méthode statique
public static void WriteSimpleDebugTrace(string logFilePathArg, string messageArg)
{
StreamWriter writer;
//Environment.ExpandEnvironmentVariables("%SystemDrive%") [will get to the c drive]
if (EnumsAndConstants.EnableApplicationLogging)
{
writer = new StreamWriter(logFilePathArg, true);
writer.Write("Time: " + DateTime.Now.ToString() + " Message: " + messageArg);
writer.Write(Environment.NewLine);
writer.Flush();
writer.Close();
}
}
Et je suis en train d'accéder au nom this.GetType() à l'intérieur, mais je ne suis pas autorisé à.. Y a-t-il de toute façon autour de ça? Je veux obtenir facilement le nom de la classe appelante lorsque cette méthode est appelée sans avoir à réécrire tous les appels à cette méthode ...
* Quel type * voulez-vous exactement? Vous pourriez faire 'typeof (DeclaringClass)'/'MethodBase.GetCurrentMethod(). DeclaringType', mais cela ne vous donnerait que le type de la classe * logger *. Si vous voulez le type de la classe qui a appelé cette méthode, vous pouvez examiner la pile d'appel, mais ceci est lourd de problèmes (possible JIT inlining etc). – Ani