?
Solved

object not set to instance of object when declaring a partial class

Posted on 2011-03-09
6
Medium Priority
?
362 Views
Last Modified: 2012-05-11
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(ShowReceiptInfo))

        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(string_writer, as2)
            Dim LogDir As String = System.Configuration.ConfigurationSettings.AppSettings("LogDirectory")
            Log_Files(LogDir, string_writer.ToString(), headerid)

            'Send_Transaction(string_writer.ToString(), 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
'------------------------------------------------------------------------------
' <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

Open in new window

0
Comment
Question by:tentavarious
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
6 Comments
 
LVL 4

Expert Comment

by:parnasso
ID: 35085592
I think the compiler is telling you that the variable applicationAreaField has not been initialized. When declaring a class partial, the default constructor for your ShowReceiptInfo class is not doing something like : Dim applicationAreaField As New ShowReceiptInfoApplicationArea.

Declare another Partial Public Class ShowReceiptInfo with a default constructor that initializes the field applicationAreaField.

I hope my explanation was clear

0
 

Author Comment

by:tentavarious
ID: 35085636
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="qualified"
           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>
0
 

Author Comment

by:tentavarious
ID: 35085644
Could you provide an example, the code compiles fine, i get the error when i try and run it
0
Create CentOS 7 Newton Packstack Running Keystone

A bug was filed against RDO for the installation of Keystone v3. This guide is designed to walk you through the configuration for using Keystone v3 with Packstack. You will accomplish this using various repos and the Answers file.

 
LVL 4

Accepted Solution

by:
parnasso earned 2000 total points
ID: 35085751
I didn't explained myself clearly. In addition to the code which is generated automatically, you can declare in your manually written code another part of the partial class:

Partial Public Class ShowReceiptInfo

    Private applicationAreaField As ShowReceiptInfoApplicationArea

    Private Sub Constructor()
        applicationAreaField =  New ShowReceiptInfoApplicationArea; // or default value you want
    End Sub

Open in new window


Then when you do in your code:

 as2.ApplicationArea.BODId = bod_id

It will work because the ApplicationArea now is not null.

By the way I'm sorry about the syntax errors in my VB.

0
 

Author Comment

by:tentavarious
ID: 35085883
Still no go
I tried adding the constructor and  doing this

Private applicationAreaField As New ShowReceiptInfoApplicationArea
0
 

Author Comment

by:tentavarious
ID: 35086160
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

http://www.experts-exchange.com/Programming/Languages/.NET/Visual_Basic.NET/Q_26870958.html
0

Featured Post

NFR key for Veeam Backup for Microsoft Office 365

Veeam is happy to provide a free NFR license (for 1 year, up to 10 users). This license allows for the non‑production use of Veeam Backup for Microsoft Office 365 in your home lab without any feature limitations.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

It’s quite interesting for me as I worked with Excel using vb.net for some time. Here are some topics which I know want to share with others whom this might help. First of all if you are working with Excel then you need to Download the Following …
Parsing a CSV file is a task that we are confronted with regularly, and although there are a vast number of means to do this, as a newbie, the field can be confusing and the tools can seem complex. A simple solution to parsing a customized CSV fi…
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…
In this video, Percona Solutions Engineer Barrett Chambers discusses some of the basic syntax differences between MySQL and MongoDB. To learn more check out our webinar on MongoDB administration for MySQL DBA: https://www.percona.com/resources/we…

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question