Bonjour,
Voici mon problème, je me rend compte après avoir écris mon code pour un outil, que le nom d'une variable d'une structure qui me permet de générer un fichier xml en sortie doit impérativement s'appeler "date", mais mon problème est que vb.net ne permet pas d'utiliser ce mot comme variable.
du coup je me sens coincé, je ne sais pas trop quoi faire maintenant que tout mon code est écrit:
Voici en substance mon code:
Je fais tout un traitement pour renseigner les valeurs de ma structure, puis je transforme cette structure en document xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Public Structure ValidationFile Public Header As VHEADER Public ValidationList() As Validation End Structure 'Structure VHEADER Public Structure VHEADER Public XsdVersion As String Public SessionStartDate As String End Structure 'Structure VAL Public Structure Validation Public VDate As String Public CardSerialNumber As String Public CompanyCode As String Public MediaType As String Public CardType As String Public ValidationStatusId As String Public FailureReasonId As String Public ValidationStateId As String Public ProductStartValidity As String Public ProductEndOfValidity As String End Structure
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Public function pValidationFileToXml(byval pValidationFile As ValidationFile) As XmlDocument Dim doc As XmlDocument doc = SerializeToXmlDocument(pValidationFile) Return doc End Functionpuis je sauvegarde mon fichier xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Public Function SerializeToXmlDocument(input As Object) As XmlDocument Dim ser As XmlSerializer = New XmlSerializer(input.GetType(), "http://monsite.com/validationFile") Dim xd As XmlDocument = Nothing Using memStm As MemoryStream = New MemoryStream() ser.Serialize(memStm, input) memStm.Position = 0 Dim settings As New XmlReaderSettings() settings.IgnoreWhitespace = True Using xtr As XmlReader = XmlReader.Create(memStm, settings) xd = New XmlDocument() xd.Load(xtr) End Using End Using Return xd End Function
mais du coup je me retrouve avec ce champs "VDate" qui devrait s'appeler "Date" issu de la déclaration de la structure, le problème étant que je ne peux pas déclarer ce champs comme je le souhaite dans la structure car Date est un mot du langage VB.net
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim pValidationFileXml As XmlDocument = pValidationFileToXml(pValidationFile) pValidationFileXml.Save(Application.StartupPath & "\temp\" & "temp.xml")
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <?xml version="1.0"?> <ValidationFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://monsite.com/validationFile"> <Header> <XsdVersion>1.9</XsdVersion> <SessionStartDate>2020-05-28T10:20:19</SessionStartDate> </Header> <ValidationList> <Validation> <VDate>2020-05-28T10:38:35</VDate> <CardSerialNumber>c35666f1</CardSerialNumber> <CompanyCode>1</CompanyCode> <MediaType>8</MediaType> <CardType>6</CardType> <ValidationStatusId>1</ValidationStatusId> <FailureReasonId>0</FailureReasonId> <ValidationStateId>1</ValidationStateId> <ProductStartValidity>2020-05-28T00:00:00</ProductStartValidity> <ProductEndOfValidity>2020-06-03T23:59:00</ProductEndOfValidity> </Validation> </ValidationList> </ValidationFile>
Merci pour vos idées et conseil.
cordialement,
yaume91
Partager