Jag får NullReferenceException på den rödmarkerade raden, hur undviker jag det?
Dim attribPostBack As XmlAttribute = menuItem.Attributes("postback")
Dim postBack As Boolean
Try
[red]postBack = IIf(Not (attribPostBack Is Nothing), Boolean.Parse(attribPostBack.Value), False)[/red]
....
I XML-filen så ser det ut så här:
<item postback="True">
</item>
eller
så här
<item>
</item>
Alltså saknas postback så skall värdet sättas till False
Det verkar som om attribPostBack inte initialiseras om xmlattributet inte har något värde, vilket ger en nullpekare. Jag kan naturligtvis ha fel och jag är ingen fena på VB, men vad händer om du initialiserar attribPostBack med nothing först, för att efter det försöka tilldela den menuItem.Attributes("postback") ?
Det kan tänkas att nyckelordet IIf tilldelar en lokal variabel värdet av menuItem.Attributes("postback") för jämförelsen, men det verkar skumt... är du väldigt intresserad kan du ju kolla vad du får ut av kompilatorn i intermediate language
Jag antar att "x = IIf( jmfr, true, false)" funkar som C# "x = jmfr ? true : false;" ?