如何为类文件生成XML文件 [英] How to generate XML file for class file

查看:56
本文介绍了如何为类文件生成XML文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在为Custom类生成XML文件时,我将Object设置为以下行中的Null引用:



While generating XML file for Custom class, I am getting Object set to Null reference in the following line:

vlist.Visibility.Add(new Visibility() { ListOrder = 2, DisplayName = "Name", Name = v.Name });





任何人都可以告诉我我做错了什么以及如何纠正它?



以下是我的全部代码:





Can anybody tell me what am I doing wrong and how to correct it?

Following is my whole code :

#region
class Program
{
    static void Main(string[] args)
    {
        #region list GEnerateion
        Visibilities vlist = new Visibilities();
        Visibility v = new Visibility();
        v.Name = new FullName();
        vlist.AppName = "Test2";
        v.Name.FirstName = "First Name";
        v.Name.MiddleName = "Middle Name";
        v.Name.LastName = "Last Name";
        vlist.Visibility.Add(new Visibility() { ListOrder = 2, DisplayName = "Name", Name = v.Name });
        File.WriteAllText("Test1.xml", vlist.ToString());
        #endregion
    }
}
#endregion

#region
[Serializable]
public class FullName
{
    private String strFirstName;
    [XmlAttribute("FirstName")]
    public String FirstName
    {
        get { return strFirstName; }
        set { strFirstName = value; }
    }

    private String strMiddleName;
    [XmlAttribute("MiddleName")]
    public String MiddleName
    {
        get { return strMiddleName; }
        set { strMiddleName = value; }
    }

    private String strLastName;
    [XmlAttribute("LastName")]
    public String LastName
    {
        get { return strLastName; }
        set { strLastName = value; }
    }

}
#endregion

#region Visibility
[Serializable]
public class Visibility
{
    [XmlElement("Name")]
    public FullName Name { get; set; }

    [XmlAttribute("DisplayName")]
    public String DisplayName { get; set; }

    [XmlAttribute("ListOrder")]
    public int ListOrder { get; set; }
}
#endregion

#region Visibilities
[Serializable]
public class Visibilities
{
    [XmlAttribute("AppName")]
    public String AppName { get; set; }

    [XmlElement("Visibility")]
    public List<Visibility> Visibility { get; set; }

    #region
    public override string ToString()
    {
        string l_strXML = string.Empty;

        XmlSerializer Xml = new System.Xml.Serialization.XmlSerializer(GetType());
        MemoryStream ms = new MemoryStream();
        Xml.Serialize(ms, this);

        Byte[] Buffer = new byte[ms.Length];
        ms.Seek(0, 0);
        ms.Read(Buffer, 0, (int)ms.Length);

        l_strXML = System.Text.Encoding.ASCII.GetString(Buffer, 0, (int)ms.Length);

        return l_strXML;
    }
    #endregion
}
#endregion

推荐答案

嗨Pratik,



检查以下修改后的代码。问题解决了。任何疑问都告诉我......





Hi Pratik,

Check the below modified code. Issue resolved. FOr any queries plz let me know...


namespace Client.ConsoleX
{
    
    public class Program
    {
        MainServiceClient mainServiceClient = new MainServiceClient();
        public static void Main()
        {
            #region list GEnerateion
            Visibilities vlist = new Visibilities();
            Visibility v = new Visibility();
            v.Name = new FullName();
            vlist.AppName = "Test2";
            v.Name.FirstName = "First Name";
            v.Name.MiddleName = "Middle Name";
            v.Name.LastName = "Last Name";
            v.DisplayName = "Display Name";
            //vlist.Visibility.Add(new Visibility() { ListOrder = 2, DisplayName = "Name", Name = v.Name });
            //vlist.Visibility.Add(v);
            List<Visibility> list = new List<Visibility>();
            list.Add(v);
            vlist.Visibility = list;
            File.WriteAllText(@"d:\Test1.xml", vlist.ToString());
            Console.WriteLine("Sucessfully created the xml file...");
            #endregion
            
            Console.ReadKey();
        }
        
                        
    }
    #region
    [Serializable]
    public class FullName
    {
        private String strFirstName;
        [XmlAttribute("FirstName")]
        public String FirstName
        {
            get { return strFirstName; }
            set { strFirstName = value; }
        }
        private String strMiddleName;
        [XmlAttribute("MiddleName")]
        public String MiddleName
        {
            get { return strMiddleName; }
            set { strMiddleName = value; }
        }
        private String strLastName;
        [XmlAttribute("LastName")]
        public String LastName
        {
            get { return strLastName; }
            set { strLastName = value; }
        }
    }
    #endregion
    #region Visibility
    [Serializable]
    public class Visibility
    {
        [XmlElement("Name")]
        public FullName Name { get; set; }
        [XmlAttribute("DisplayName")]
        public String DisplayName { get; set; }
        [XmlAttribute("ListOrder")]
        public int ListOrder { get; set; }
    }
    #endregion
    #region Visibilities
    [Serializable]
    public class Visibilities
    {
        [XmlAttribute("AppName")]
        public String AppName { get; set; }
        [XmlElement("Visibility")]
        public List<Visibility> Visibility { get; set; }
        #region
        public override string ToString()
        {
            string l_strXML = string.Empty;
            XmlSerializer Xml = new System.Xml.Serialization.XmlSerializer(GetType());
            MemoryStream ms = new MemoryStream();
            Xml.Serialize(ms, this);
            Byte[] Buffer = new byte[ms.Length];
            ms.Seek(0, 0);
            ms.Read(Buffer, 0, (int)ms.Length);
            l_strXML = System.Text.Encoding.ASCII.GetString(Buffer, 0, (int)ms.Length);
            return l_strXML;
        }
        #endregion
    }
    #endregion
}


这篇关于如何为类文件生成XML文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆