In Summary:
Create an object - dont set one of its Enum Type properties and make
sure it does not appear in XML Object Serialization.
Strings function as hoped for but Enums do not
Heres my problem broken down to simplest form
I have the following ENUM
----------------------------------------------
Public Enum SexType
Male
Female
Unknown
End Enum
----------------------------------------------
& The Following Class
----------------------------------------------
Imports System.Xml.Serialization
<XmlRoot(ElementName:="Person", IsNullable:=False, [Namespace]:="")> _
Public Class Person
Private _name As String
Private _sex As SexType
<XmlElementAttribute(ElementName:="Sex",IsNullable :=False)> _
Public Property Sex As SexType
Get
Return _sex
End Get
Set(ByVal Value As SexType)
_sex = Value
End Set
End Property
<XmlElementAttribute("Name"),IsNullable:=False)> _
Public Property Name As String
Get
Return _name
End Get
Set(ByVal Value As String)
_name = Value
End Set
End Property
Public Sub New()
End Sub
-----------------------------------------------------
Now heres what i want to do in a Main method of the Console application
----------------------------------------------
Dim serializeAPP As XmlSerializer
Try
serializeAPP = New XmlSerializer(GetType(Person))
Catch e As Exception
Console.Write(e.Message())
Console.Read()
Exit Sub
End Try
Dim objPerson As New Person
objPerson.Name = "Graham"
serializeAPP.Serialize(Console.Out, objbControl)
Console.Read()
---------------------------------
The output is as follows (i've ommitted the namespace stuff)
---------------------------------
<Person>
<Name>Graham</Name>
<Sex>Male</Sex>
</Person>
---------------------------------
Thing is, you will note we did not set the Sex property. I want
properties that are not set not to appear in the output XML.
However if we do not the set the Name Property (which is of Type
String) you would note that it does not appear in the output XML.
i.e.
----------------------------------
<Person>
<Sex>Male</Sex>
</Person>
----------------------------------
I have set my XML attribute parameter IsNullable:=False
So In Summary:
How to make Unset Enum Type properties not appear in XML Serialization.
*** Sent via Developersdex http://www.developersdex.com ***