Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[C#] app.config - relationele data?

Pagina: 1
Acties:

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 24-11 23:24
Ik heb voor een verzekeringsmaatschappij in C# iets gebouwd waarmee je premies kunt bereken. Om nu te voorkomen dat je voor iedere scheet moet hercompileren hebben we de wat grotere lijsten met parameters naar de db verhuisd, en ik zit nog met wat kleinere parameters, zoals assurantiebelasting, die ik wel variabel wil houden maar waar ik geen db table voor wil gebruik.

Enter app.config.

Werkt prima voor die belasting, maar nu heb ik een bepaalde regiokorting die per regio en per laag in de verzekering een bepaalde korting geeft. Dus eigenlijk wil ik, zoals je in principe altijd in XML kunt, tags nesten.

Kan dit, en zo ja, hoe lees ik dit uit?

Ik kan natuurlijk ok de verzekeringslaag en de regio in de key proppen en dan de korting in de value, maar dat is natuurlijk een beetje lomp.

iOS developer


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:23

gorgi_19

Kruimeltjes zijn weer op :9

Waarom maak je geen eigen .config en dump je de waarden in dit xml bestand?

[ Voor 13% gewijzigd door gorgi_19 op 25-10-2007 13:48 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:23

gorgi_19

Kruimeltjes zijn weer op :9

Bijvoorbeeld :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 21-11 07:55

mOrPhie

❤️❤️❤️❤️🤍

Of je serializeert je state-object naar XML:

How to serialize an object to XML by using Visual C#

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:54
Ik zou het toch in de DB zetten. :P
Alles op één plaats, consistent, veilig, etc... Je zou maar eens een van je xml config filetjes verwijderen.

Als het gaat om belangrijke gegevens / parameters -> DB (als je er toch een hebt).

https://fgheysels.github.io/


  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 31-10 11:58
Je kan ook je eigen configSection maken, maar da's misschien wel beetje overdone.
Bovenaan registreren:
C#:
1
2
3
4
5
<configSections>
    <sectionGroup name="MyCustomConfigSectionGroup">
        <section name="MyCustomConfigSection" type="ConsoleApplication2.MyCustomConfigSection, ConsoleApplication2"/>
    </sectionGroup>
</configSections>


Dan de config zelf:
C#:
1
2
3
4
5
<MyCustomConfigSectionGroup>
    <MyCustomConfigSection attr="asgsadf">
        <sub type="gljksdf" />
    </MyCustomConfigSection>
</MyCustomConfigSectionGroup>


En de sectionhandler:
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
public class MySubElement : ConfigurationElement
{
    [ConfigurationProperty("type")]
    public string MyType
    {
        set { this["type"] = value; }
        get { return (string)this["type"]; }
    }
}

public class MyCustomConfigSection : ConfigurationSection
{
    [ConfigurationProperty("attr")]
    public string MyAttribute
    {
        set { this["attr"] = value; }
        get { return (string)this["attr"]; }
    }

    [ConfigurationProperty("sub")]
    public MySubElement MySubElement
    {
        set { this["sub"] = value; }
        get { return (MySubElement)this["sub"]; }
    }
}


Zoals je ziet kan je attributen direct opnemen in de ConfigurationSection class. Als je geneste elementen wilt zal je daarvoor een afgeleide class moeten maken die ConfigurationElement implementeert.

Maar zoals gezegd, dit is misschien een beetje overdone :)

Zulke dingen zijn meer bedoelt voor als je een framework wilt bouwen. Het voordeel is dat configuratie op verschillende niveau's automatisch gemerged worden, het vanuit code aan te passen is, en bovendien het ook makkelijk uitbreidbaar is. Voor jouw toepassing kan je denk ik inderdaad beter gewoon de database gebruiken aangezien je die toch al hebt, zoals whoami al zei.

[ Voor 13% gewijzigd door riezebosch op 25-10-2007 15:18 ]

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack

Pagina: 1