如何在不使用xml命名空间的情况下使用C#类读取xml属性 [英] how to read xml attribute using C# classes without using xml namespace

查看:78
本文介绍了如何在不使用xml命名空间的情况下使用C#类读取xml属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下是我的XML文件:



Below is My XML File :

<Visibilities>
    <Visibilities AppName="Test2">
      <Visibility DisplayName="Full Name">
        <FullName>
          <FirstName PropertyName="FullName.FirstName" DisplayName="First Name" ListOrder="3"></FirstName>
          <MiddleName PropertyName="FullName.MiddleName" DisplayName="Middle Name" ListOrder="2"></MiddleName>
          <LastName PropertyName="FullName.LastName" DisplayName="Last Name" ListOrder="1"></LastName>
        </FullName>
      </Visibility>
    </Visibilities>
  </Visibilities>







以下是我的课程






Below are my classes

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

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

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

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

 #region Visibility
 [Serializable]
 public class Visibility
 {
     public FullName FullName { get; set; }

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

 }
 #endregion

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

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





以下代码行是我的阅读方式:





Below Lines of codes is how I am reading :

foreach (Visibility vis in l.Visibility.ToList())
                {
                    Console.WriteLine(vis.DisplayName);
                    Console.WriteLine("{0}{1}", vis.FullName.FirstName, Reflect.GetPropValue<String>(cust, vis.FullName.FirstName));
                }







我必须做什么修改才能读取属性值第一,中间,姓氏?




What Modifications I have to do so that I can read Attribute values from First,Middle,Last Name?

推荐答案

请参阅我对该问题的评论。有一个更好的方法:数据合同: http://msdn.microsoft.com/en-us/ library / ms733127.aspx [ ^ ]。



请参阅我过去的回答,我提倡这种美妙,通用且易于使用的方法:

如何在表单应用程序中使用XML文件编写器和阅读器? [ ^ ],

创建属性文件...... [ ^ ]。



-SA
Please see my comments to the question. There is a much better approach: Data Contract: http://msdn.microsoft.com/en-us/library/ms733127.aspx[^].

Please see also my past answer where I advocate this wonderful, universal and easy to use approach:
How can I utilize XML File streamwriter and reader in my form application?[^],
Creating property files...[^].

—SA


这篇关于如何在不使用xml命名空间的情况下使用C#类读取xml属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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