My code is throwing an error and i am unable to fix, What way could i solve this or how would I be able to change it to work?

0

I am getting this error when I run my code

System.InvalidOperationException
  HResult=0x80131509
  Message=HamiltonXML.Program is inaccessible due to its protection 
level. Only public types can be processed.
  Source=System.Xmlenter code here
  StackTrace:
   at System.Xml.Serialization.TypeDesc.CheckSupported()
   at System.Xml.Serialization.TypeScope.GetTypeDesc(Type type,         
MemberInfo source, Boolean directReference, Boolean throwOnError)
   at System.Xml.Serialization.TypeScope.ImportTypeDesc(Type type, MemberInfo memberInfo, Boolean directReference)
   at System.Xml.Serialization.TypeScope.GetTypeDesc(Type type, MemberInfo source, Boolean directReference, Boolean throwOnError)
   at System.Xml.Serialization.ModelScope.GetTypeModel(Type type, Boolean directReference)
   at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(Type type, XmlRootAttribute root, String defaultNamespace)
   at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace)
   at System.Xml.Serialization.XmlSerializer..ctor(Type type)
   at HamiltonXML.Program.Main(String[] args) in C:\Users\Aube\source\repos\HamiltonProject\HamiltonProject\Program.cs:line 18

I've changed all classes to public and rechecked all of the code yet the problem still occurs. Here is the code:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;

namespace HamiltonXML
{
    class Program
    {
        static void Main(string[] args)
        {
        EnvironmentNodeConfigurationParameters encp = null;
        string path = "C:/Users/Aube/Desktop/FreezerEnvironmentNodeParameters_Freezer1.xml";

        XmlSerializer serializer = new XmlSerializer(typeof(EnvironmentNodeConfigurationParameters));

        StreamReader reader = new StreamReader(path);
        encp = (EnvironmentNodeConfigurationParameters)serializer.Deserialize(reader);
        reader.Close();
    }


    // NOTE: Generated code may require at least .NET Framework 4.5 or .NET Core/Standard 2.0.
    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
    public partial class EnvironmentNodeConfigurationParameters
    {

        private EnvironmentNodeConfigurationParametersComplexNodeConfigurations[] complexDeviceParameterListField;

        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ComplexNodeConfigurations", IsNullable = false)]
        public EnvironmentNodeConfigurationParametersComplexNodeConfigurations[] ComplexDeviceParameterList
        {
            get
            {
                return this.complexDeviceParameterListField;
            }
            set
            {
                this.complexDeviceParameterListField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public partial class EnvironmentNodeConfigurationParametersComplexNodeConfigurations
    {

        private EnvironmentNodeConfigurationParametersComplexNodeConfigurationsNodeConfigurations[] complexNodeParameterListField;

        private string subDeviceIDField;

        private string subDeviceNameField;

        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("NodeConfigurations", IsNullable = false)]
        public EnvironmentNodeConfigurationParametersComplexNodeConfigurationsNodeConfigurations[] ComplexNodeParameterList
        {
            get
            {
                return this.complexNodeParameterListField;
            }
            set
            {
                this.complexNodeParameterListField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string SubDeviceID
        {
            get
            {
                return this.subDeviceIDField;
            }
            set
            {
                this.subDeviceIDField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string SubDeviceName
        {
            get
            {
                return this.subDeviceNameField;
            }
            set
            {
                this.subDeviceNameField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public partial class EnvironmentNodeConfigurationParametersComplexNodeConfigurationsNodeConfigurations
    {

        private EnvironmentNodeConfigurationParametersComplexNodeConfigurationsNodeConfigurationsEnvironmentLinkParams environmentLinkParamsField;

        private byte nodeIDField;

        private string nodeNameField;

        private string dependNodeNameField;

        private string registerTypeField;

        private byte startRegField;

        private byte numRegsField;

        private string nodeTypeField;

        private string valueTypeField;

        private string environmentLinkTypeField;

        private string guidField;

        private bool enabledField;

        private string unitsField;

        private bool monitoredField;

        private byte reportItemField;

        /// <remarks/>
        public EnvironmentNodeConfigurationParametersComplexNodeConfigurationsNodeConfigurationsEnvironmentLinkParams EnvironmentLinkParams
        {
            get
            {
                return this.environmentLinkParamsField;
            }
            set
            {
                this.environmentLinkParamsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte NodeID
        {
            get
            {
                return this.nodeIDField;
            }
            set
            {
                this.nodeIDField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string NodeName
        {
            get
            {
                return this.nodeNameField;
            }
            set
            {
                this.nodeNameField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string DependNodeName
        {
            get
            {
                return this.dependNodeNameField;
            }
            set
            {
                this.dependNodeNameField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string RegisterType
        {
            get
            {
                return this.registerTypeField;
            }
            set
            {
                this.registerTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte StartReg
        {
            get
            {
                return this.startRegField;
            }
            set
            {
                this.startRegField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte NumRegs
        {
            get
            {
                return this.numRegsField;
            }
            set
            {
                this.numRegsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string NodeType
        {
            get
            {
                return this.nodeTypeField;
            }
            set
            {
                this.nodeTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string ValueType
        {
            get
            {
                return this.valueTypeField;
            }
            set
            {
                this.valueTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string EnvironmentLinkType
        {
            get
            {
                return this.environmentLinkTypeField;
            }
            set
            {
                this.environmentLinkTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Guid
        {
            get
            {
                return this.guidField;
            }
            set
            {
                this.guidField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Enabled
        {
            get
            {
                return this.enabledField;
            }
            set
            {
                this.enabledField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Units
        {
            get
            {
                return this.unitsField;
            }
            set
            {
                this.unitsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Monitored
        {
            get
            {
                return this.monitoredField;
            }
            set
            {
                this.monitoredField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte ReportItem
        {
            get
            {
                return this.reportItemField;
            }
            set
            {
                this.reportItemField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public partial class EnvironmentNodeConfigurationParametersComplexNodeConfigurationsNodeConfigurationsEnvironmentLinkParams
    {

        private EnvironmentNodeConfigurationParametersComplexNodeConfigurationsNodeConfigurationsEnvironmentLinkParamsKeyValuePair keyValuePairField;

        /// <remarks/>
        public EnvironmentNodeConfigurationParametersComplexNodeConfigurationsNodeConfigurationsEnvironmentLinkParamsKeyValuePair KeyValuePair
        {
            get
            {
                return this.keyValuePairField;
            }
            set
            {
                this.keyValuePairField = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public partial class EnvironmentNodeConfigurationParametersComplexNodeConfigurationsNodeConfigurationsEnvironmentLinkParamsKeyValuePair
    {

        private string keyField;

        private string valueField;

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Key
        {
            get
            {
                return this.keyField;
            }
            set
            {
                this.keyField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Value
        {
            get
            {
                return this.valueField;
            }
            set
            {
                this.valueField = value;
            }
        }
    }



}

}

The code is supposed to deserialize an XML file.

c#
xml
deserialization
asked on Stack Overflow Apr 12, 2019 by Q.Aube • edited Apr 12, 2019 by dbc

1 Answer

3

Have you tried changing your Program class to public?

namespace HamiltonXML
{
    public class Program
    {

answered on Stack Overflow Apr 12, 2019 by MarkSeeSharp

User contributions licensed under CC BY-SA 3.0