Wo werden globale Konstanten am besten hinterlegt?

08/01/2010 - 21:53 von Claudia Maier | Report spam
Hallo,
ich möchte die Features von VS2008 nutzen, ohne groß was Neues zu
schreiben.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace My.Definitions.Global
{
/// <summary>
/// Global constant
/// </summary>
public static class Global
{
/// <summary>
/// Trace Info
/// </summary>
public const string TRACE_CATEGORY_INFORMATION = "TRACE
Information";
public const string TRACE_CATEGORY_ERROR = "TRACE Error";
public const string TRACE_CATEGORY_M1 = "TRACE M1";
}
}

Von einem anderen Projekt rufe ich dann es so auf.
FileStream myFile = new FileStream(@"ErrorProtocol.txt",
FileMode.Create);

/* Create a new text writer using the output stream, and
add it to
* the trace listeners. */
TextWriterTraceListener myTextListener = new
TextWriterTraceListener(myFile);
Trace.Listeners.Add(myTextListener);

Trace.AutoFlush = true;
Trace.WriteLine("Test output 1");
Trace.IndentLevel = 5;
Trace.TraceError("Schreibe TraceError");
Trace.TraceInformation("Schreibe TraceInformation");
Trace.TraceWarning("Schreibe Warning");
Trace.WriteLineIf(true, "Schreibe LineIf");
Trace.WriteLine("Schreibe WriteLine IndentLevel 5",
Global.TRACE_CATEGORY_INFORMATION );
Trace.IndentLevel = 1;
Trace.WriteLine("Schreibe WriteLine IndentLevel 1",
Global.TRACE_CATEGORY_INFORMATION);
Trace.WriteLine("Schreibe WriteLine IndentLevel 1",
Global.TRACE_CATEGORY_M1);

Ausgabe:
TRACE Information: Schreibe WriteLine IndentLevel 1
TRACE M1: Schreibe WriteLine IndentLevel 1


Frage nun:
Ist es eine gute, richtige Lösung, Global so static einzubinden?
Gehen tut es ja.
Vorteil:
Möchte ich Änderungen haben, sind diese dann für alle Module, alle
Projekte schnell
erledigt.

Ich verwende VS2008 C#, WinXP/WinVista

Viele Grüße Claudia
 

Lesen sie die antworten

#1 Herfried K. Wagner [MVP]
09/01/2010 - 01:11 | Warnen spam
Hallo Claudia!

Am 08.01.2010 21:53, schrieb Claudia Maier:
ich möchte die Features von VS2008 nutzen, ohne groß was Neues zu
schreiben.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace My.Definitions.Global
{
///<summary>
/// Global constant
///</summary>
public static class Global
{
///<summary>
/// Trace Info
///</summary>
public const string TRACE_CATEGORY_INFORMATION = "TRACE
Information";
public const string TRACE_CATEGORY_ERROR = "TRACE Error";
public const string TRACE_CATEGORY_M1 = "TRACE M1";



.NET-Benennungskonventionen ggf. beachten.

}
[...]
Frage nun:
Ist es eine gute, richtige Lösung, Global so static einzubinden?
Gehen tut es ja.



Warum nicht. Andere Möglichkeiten: Singleton-Entwurfsmuster
implementieren oder Ressourcen benutzen (bei größeren Datenmengen).

M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Ähnliche fragen