如何为类文件生成XML文件 [英] How to generate XML file for class file
本文介绍了如何为类文件生成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屋!
查看全文