Hey tweakertjes,
Ik ben bezig een opzetje te maken voor een xml data storage.
Deze moet straks werken door structs op te slaan in xml.
Deze structs kunnen varieren en om de data op te slaan maak ik gebruik van System.Reflection
om de data op te slaan.
Voorbeeldje:
Dit resulteert in een xml met:
Nu hoef ik alleen mijn struct aan te passen en gaat het opslaan van de data meteen goed.
Mooi, werkt prima.
Maar nu het terughalen van de data.
Ik loop er tegen aan dat het converteren van "True" naar een boolean niet altijd mag.
Daarom heb ik ervoor gekozen om de systemtype ook in de xml op te slaan, zodat ik altijd weet wat voor data type het is.
Waar ik nu eigenlijk heen wil is een situatie waar ik de data weer kan gebruiken.
Maar ik krijg het typecasten niet voor elkaar.
Dit mag dus niet, CType accepteert alleen Spijkerhard System.Boolean, maar daar heb ik niets aan omdat ik dit als string inlees.
Weet iemand hoe je Dynamisch kan typecasten?
Google levert veel hits op over typecast maar niet op deze manier.
Ik ben bezig een opzetje te maken voor een xml data storage.
Deze moet straks werken door structs op te slaan in xml.
Deze structs kunnen varieren en om de data op te slaan maak ik gebruik van System.Reflection
om de data op te slaan.
Voorbeeldje:
code:
1
2
3
4
5
| Public Structure Storage_Struct Dim ProfileName As String Dim NetworkCard_ServiceName As String Dim NetworkCard_ServiceActive As Boolean End Structure |
Dit resulteert in een xml met:
code:
1
2
3
4
| <name ProfileName="MyProfile1"> <NetworkCard_ServiceName>System.String-Cardname</NetworkCard_ServiceName> <NetworkCard_ServiceActive >System.String-True</NetworkCard_ServiceActive > </name> |
Nu hoef ik alleen mijn struct aan te passen en gaat het opslaan van de data meteen goed.
Mooi, werkt prima.
Maar nu het terughalen van de data.
Ik loop er tegen aan dat het converteren van "True" naar een boolean niet altijd mag.
Daarom heb ik ervoor gekozen om de systemtype ook in de xml op te slaan, zodat ik altijd weet wat voor data type het is.
Waar ik nu eigenlijk heen wil is een situatie waar ik de data weer kan gebruiken.
Maar ik krijg het typecasten niet voor elkaar.
code:
1
2
| Dim m_bool as boolean m_bool = CType("True", "System.Boolean") |
Dit mag dus niet, CType accepteert alleen Spijkerhard System.Boolean, maar daar heb ik niets aan omdat ik dit als string inlees.
Weet iemand hoe je Dynamisch kan typecasten?
Google levert veel hits op over typecast maar niet op deze manier.