tentavarious
asked on
object not set to instance of object when declaring a partial class
Hello experts,
I normally know how to fix this, and its usually because i forgot a new keyword somewhere. That is not the case. I am using a partial class that generates a serialized xml. I create a new instance of the class but it is still telling me object not set to instance of an object. I used the xsd tool to create the class from a provided schema. The generated class is below, i took out a lot of unecessary variables. I have never worked with partial classes so i am wondering if that is the cause.
In my code i call the below class like so:
Function create_receipt_xml(byval bod_id as string) As Boolean
Dim as2 As New ShowReceiptInfo
Dim serializer = New XmlSerializer(GetType(Show ReceiptInf o))
Try
as2.ApplicationArea.BODId = bod_id 'I get the object not set to instance of object here
header_info ="test"
Dim string_writer As New StringWriter()
serializer.Serialize(strin g_writer, as2)
Dim LogDir As String = System.Configuration.Confi gurationSe ttings.App Settings(" LogDirecto ry")
Log_Files(LogDir, string_writer.ToString(), headerid)
'Send_Transaction(string_w riter.ToSt ring(), HeaderId, strURL)
string_writer.Close()
string_writer.Dispose()
as2 = Nothing
Catch ex As Exception
MessageBox.Show("Failed to create int100 xml! " & ex.Message)
End Try
End Function
I normally know how to fix this, and its usually because i forgot a new keyword somewhere. That is not the case. I am using a partial class that generates a serialized xml. I create a new instance of the class but it is still telling me object not set to instance of an object. I used the xsd tool to create the class from a provided schema. The generated class is below, i took out a lot of unecessary variables. I have never worked with partial classes so i am wondering if that is the cause.
In my code i call the below class like so:
Function create_receipt_xml(byval bod_id as string) As Boolean
Dim as2 As New ShowReceiptInfo
Dim serializer = New XmlSerializer(GetType(Show
Try
as2.ApplicationArea.BODId = bod_id 'I get the object not set to instance of object here
header_info ="test"
Dim string_writer As New StringWriter()
serializer.Serialize(strin
Dim LogDir As String = System.Configuration.Confi
Log_Files(LogDir, string_writer.ToString(), headerid)
'Send_Transaction(string_w
string_writer.Close()
string_writer.Dispose()
as2 = Nothing
Catch ex As Exception
MessageBox.Show("Failed to create int100 xml! " & ex.Message)
End Try
End Function
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:2.0.50727.3615
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict Off
Option Explicit On
Imports System.Xml.Serialization
'
'This source code was auto-generated by xsd, Version=2.0.50727.42.
'
'''<remarks/>
<System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42"), _
System.SerializableAttribute(), _
System.Diagnostics.DebuggerStepThroughAttribute(), _
System.ComponentModel.DesignerCategoryAttribute("code"), _
System.Xml.Serialization.XmlTypeAttribute(AnonymousType:=True, [Namespace]:="http://mycompany.com/manufac"), _
System.Xml.Serialization.XmlRootAttribute([Namespace]:="http://mycompany.com/ manufac ", IsNullable:=False)> _
Partial Public Class ShowReceiptInfo
Private applicationAreaField As ShowReceiptInfoApplicationArea
'''<remarks/>
<System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified)> _
Public Property ApplicationArea() As ShowReceiptInfoApplicationArea
Get
Return Me.applicationAreaField
End Get
Set(ByVal value As ShowReceiptInfoApplicationArea)
Me.applicationAreaField = value
End Set
End Property
End Property
End Class
'''<remarks/>
<System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42"), _
System.SerializableAttribute(), _
System.Diagnostics.DebuggerStepThroughAttribute(), _
System.ComponentModel.DesignerCategoryAttribute("code"), _
System.Xml.Serialization.XmlTypeAttribute(AnonymousType:=true, [Namespace]:="http://mycompany.com/manufac ")> _
Partial Public Class ShowReceiptInfoApplicationArea
Private bODIdField As String
<System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified)> _
Public Property BODId() As String
Get
Return Me.bODIdField
End Get
Set
Me.bODIdField = value
End Set
End Property
End Class
ASKER
Here is the xml schema i used to create class above
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualif ied"
targetNamespace="http://mycompany.com/manufac "
xmlns:pre="http://mycompany.com/manufac">
<xs:element name="ShowReceiptInfo">
<xs:complexType>
<xs:sequence>
<xs:element name="ApplicationArea" form="unqualified">
<xs:element name="BODId" form="unqualified" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:attribute name="environment" use="required"/>
<xs:attribute name="lang" use="required"/>
<xs:attribute name="revision" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualif
targetNamespace="http://mycompany.com/manufac "
xmlns:pre="http://mycompany.com/manufac">
<xs:element name="ShowReceiptInfo">
<xs:complexType>
<xs:sequence>
<xs:element name="ApplicationArea" form="unqualified">
<xs:element name="BODId" form="unqualified" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:attribute name="environment" use="required"/>
<xs:attribute name="lang" use="required"/>
<xs:attribute name="revision" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
ASKER
Could you provide an example, the code compiles fine, i get the error when i try and run it
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Still no go
I tried adding the constructor and doing this
Private applicationAreaField As New ShowReceiptInfoApplication Area
I tried adding the constructor and doing this
Private applicationAreaField As New ShowReceiptInfoApplication
ASKER
Alright it worked thanks a lot, maybe you could take a look at another xml issue i am having. It deals with the same project, for some reason when i create the xml any tag i have containing a ":" gets replaced
take a look at this thread
https://www.experts-exchange.com/questions/26870958/xml-serialization-class-is-not-working-with-colon-in-element-tag.html
take a look at this thread
https://www.experts-exchange.com/questions/26870958/xml-serialization-class-is-not-working-with-colon-in-element-tag.html
Declare another Partial Public Class ShowReceiptInfo with a default constructor that initializes the field applicationAreaField.
I hope my explanation was clear