Dit is heel moeilijk uit te leggen maar ik ga me best doen om het zo duidelijk mogelijk over te brengen.
Ik heb een functie in Class 1.
Die functie schrijft een regel in de Console met van waar de Functie word aagevraagt. Daarvoor gebruik ik StackFrame. Dat werkt prima.
Ik heb een functie en een waarde in Class 2.
Die functie schrijft via die functie van Class 1 een regel. Maar in class 2 wil ik graag dat 1 waarde uit Class 2 word meegezonden. (een string).
Ik wil dit dus doen zonder enige aanpassingen in al mijn code.
Dus netzoals ik via StackFrame de Class en Functie aanvraag van waar het word verzonden.
Voorbeeld van functie in Class 1:
Voorbeeld Class 2:
Dit is een voorbeeld van het resultaat:
[00:00:00.000] [Class2.Test] [Jan] Test bericht.
Hopelijk begrijpen jullie nu wat ik bedoel.
Kan iemand mij uitleggen hoe ik dit het best kan doen?
Ik heb een functie in Class 1.
Die functie schrijft een regel in de Console met van waar de Functie word aagevraagt. Daarvoor gebruik ik StackFrame. Dat werkt prima.
Ik heb een functie en een waarde in Class 2.
Die functie schrijft via die functie van Class 1 een regel. Maar in class 2 wil ik graag dat 1 waarde uit Class 2 word meegezonden. (een string).
Ik wil dit dus doen zonder enige aanpassingen in al mijn code.
Dus netzoals ik via StackFrame de Class en Functie aanvraag van waar het word verzonden.
Voorbeeld van functie in Class 1:
C#:
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
| public void WriteLine(string sLine) { WriteLineInternal(ref sLine, LogType.Information, true, new StackTrace().GetFrame(1)); } private void WriteLineInternal(ref string sLine, LogType pLogType, bool ignoreLogType, StackFrame STACKF) { lock (this) { DateTime Date = DateTime.Now; Console.ForegroundColor = ConsoleColor.Gray; Console.Write("[" + Date.Hour.ToString() + ":" + Date.Minute.ToString() + ":" + Date.Second.ToString() + "." + Date.Millisecond.ToString() + "] ["); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write(STACKF.GetMethod().ReflectedType.Name + "." + STACKF.GetMethod().Name); Console.ForegroundColor = ConsoleColor.Gray; Console.Write("] "); if (pLogType == LogType.Information) Console.ForegroundColor = ConsoleColor.DarkCyan; else if (pLogType == LogType.Warning) Console.ForegroundColor = ConsoleColor.DarkYellow; else if (pLogType == LogType.Error) Console.ForegroundColor = ConsoleColor.Red; else if (pLogType == LogType.Debug) Console.ForegroundColor = ConsoleColor.DarkGray; else Console.ForegroundColor = ConsoleColor.Gray; Console.WriteLine(sLine); Console.ForegroundColor = ConsoleColor.Gray; } } |
Voorbeeld Class 2:
C#:
1
2
3
4
5
6
7
| public Class1 Log = new Class1(); public string Name = "Jan"; public void Test() { Log.WriteLine("Test bericht."); } |
Dit is een voorbeeld van het resultaat:
[00:00:00.000] [Class2.Test] [Jan] Test bericht.
Hopelijk begrijpen jullie nu wat ik bedoel.
Kan iemand mij uitleggen hoe ik dit het best kan doen?