webForumDet fria alternativet

definiera konstanter

.NET

9 svar · 248 visningar · startad av neversleep

Medlem sedan okt. 2001230 inlägg
Frågan#1

Tjena

Vad använder ni för teknik för att definera globala konstanter som ska gälla i hela projektet i .net?

När jag programmerar vanlig C lägger jag alla defines i en .h fil och inkluderar den i de filer/klasser som använder dessa konstanter.

Finns det någon liknande teknik i .net och C#. Jag kör nu genom att definera konstanter globalt i var klass med "readonly". Men så fort jag gör en ändring i en klass måste jag göra om detta i samtliga. Man måste väl kunna samla dessa i en fil och sedan inkludera den på någon vänster. Eller?

Använder man readonly eller det finns något annat som motsvarar C:s #define?

Medlem sedan okt. 2002188 inlägg
#2

Jag brukar bara ha en statisk klass som håller alla inställningar..

eg. Settings.Connection

Medlem sedan okt. 2001230 inlägg
#3

Ok ingen dum idé.

Inga andra förslag, eller alla här gör på det viset?

Medlem sedan jan. 20012 204 inlägg
#4

Lägger allt i en separat klass här också

Medlem sedan feb. 20013 023 inlägg
#5

Samma här!

Medlem sedan mars 20021 889 inlägg
#6

En nybörjarfråga... dessa klasser, kompilerar ni dem och lägger varje klass i en separat fil? Vilken typ av fil isf?
Och hur refererar/"inkluderar" ni dem sedan i koden?

:)

Medlem sedan apr. 20012 266 inlägg
#7

Jag skulla göra så här, ha en fil som som har olika properties som lämpligen fylls från en xmlfil med serialization. På detta sätt slipper man kompilera om klassen vid ändringar av konstanter (inte konstanta för alltid). För att slippa parsa xml filen varje gång kan man catcha classen efter första parsningen.

Medlem sedan jan. 20012 204 inlägg
#8

Och om dessa konstanter innehåller viktig, ganska hög säkerhetsklassad information. Är det verkligen smart att spara dem i en xml fil?

Medlem sedan feb. 20013 023 inlägg
#9

renholm skrev:

Jag skulla göra så här, ha en fil som som har olika properties som lämpligen fylls från en xmlfil med serialization. På detta sätt slipper man kompilera om klassen vid ändringar av konstanter (inte konstanta för alltid). För att slippa parsa xml filen varje gång kan man catcha classen efter första parsningen.

Borde inte detta var något långsammare än den tidigare föreslagna metoden?

Medlem sedan apr. 20012 266 inlägg
#10

P skrev:

Och om dessa konstanter innehåller viktig, ganska hög säkerhetsklassad information. Är det verkligen smart att spara dem i en xml fil?

Vad gör det säkrare att lägga det i en kompilerad .exe eller .dll? De kan nämligen dekompileras och koden brukar kunna läsas väldigt lätt. Med VS.NET 2003 kom i och för sig ett verktyg för att motverka det. Men lägger man xml filen utanför rooten samt tänker på vilka som ha access till xmlfilen bör det inte bli några problem. Vill man vara extra försiktig kan man kryptera informationen.

clarkbones skrev:

Borde inte detta var något långsammare än den tidigare föreslagna metoden?

Det beror på var du vill använda denna "settings class". Kommer du skapa den ofta dvs inte ha den catchad någonstans kan det leda till prestandard försämring. Därför vid t.ex ett webbprojekt finns det yterst användbara namespacet System.Web.Caching där objektet eller xml filen kan catchas.

278 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
144 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
142 ms — ändringar (db)