通过 C#_List of objects 中的 XElement 的属性

Attributes via XElement in C#_List of objects

我有一个 class "WsReferenceValue" 包含其他 class "Characteristic" 的列表,并且 class 特征有一个 属性另一个 class "Definition",这是我的代码:

  public class WsReferenceValue
  {
     [DataContract]
     public class WsReferenceValue : WsEntitiesDimension
     {
        public List<Characteristic> listCharacteristic { get; set; }       
     }
     [DataContract]
     public class Characteristic
     {      
          [DataMember]      
           public Definition definition { get; set; } 
     }
     [Serializable]   
     public class Definition
     {
          [XmlAttribute]
           public int id;
           [XmlAttribute]
           public string name;
      }
 }

我的代码:

 WsReferenceValue referenceV = new WsReferenceValue();
 List<Characteristic> ListFinalDynamic = new List<Characteristic>();
 foreach (var finalCharac in listeCharactresticFinal)
 {
                var lstChars = new Characteristic()
                        {
                            Definition = new Definition()
                            {
                                id = Dimension.ID,
                                name = Dimension.Name
                            }
                        };                          
             ListFinalDynamic.Add(lstChars);                    
            referenceV.listCharacteristic = ListFinalDynamic;    
}   

我得到了这个结果:

 <WsReferenceValue>                     
    <listCharacteristic>
                <Characteristic>
                    <Definition>
                        <id>1</id>
                        <name>COMPANY</name>
                    </Definition>
                </Characteristic>

                <Characteristic>
                    <Definition>
                        <id>71</id>
                        <name>COUNTRY</name>
                    </Definition>
                </Characteristic>

                <Characteristic>
                    <Definition>
                        <id>45</id>
                        <name>CURRENCY</name>
                    </Definition>
                </Characteristic>
  </listCharacteristic>

我的目标是使用这种格式获取一个参考的所有特征列表:(每个特征都有属性)

 <WsReferenceValue>                     
    <listCharacteristic>
                <Characteristic>
                    <Definition id=1 name="COMPANY" />                        
                </Characteristic>

                <Characteristic>
                    <Definition id=71 name="COUNTRY" />
                </Characteristic>

                <Characteristic>
                    <Definition id=45 name="CURRENCY" />                      
                </Characteristic>
  </listCharacteristic>

我该如何解决?谢谢

实际上是为了解决我的问题:我修改了概念:首先我不使用 XMLSerializer,我只使用 DataContractSerializer 所以我删除了定义 Class,然后我将列表 xelement 添加到一个 xelement ,我得到了我的结果,

我的 WsReferenceValue class:

  [DataContract]
 public class WsReferenceValue : WsEntitiesDimension
 { 
    [DataMember]
    public XElement listCharacteristic {get ; set;}
}

实施:

WsReferenceValue referenceV = new WsReferenceValue();
foreach (var finalCharac in listeCharactresticFinal)
{    
  var XelementTemp = new XElement("ReferenceValue",
      new XAttribute("Name", refVal.Name),
      new XAttribute("Id", refVal.ID)); 

      referenceV.listCharacteristic.Add(XelementTemp);                  
 }   

我得到了我想要的结果:

<listCharacteristic>
        <ReferenceValues xmlns="">
            <ReferenceValue Name="CC" Id="1"  />
            <ReferenceValue Name="S9999" Id="4" "0"/>
            <ReferenceValue Name="EE45" Id="5" />  
        </ReferenceValues>
</listCharacteristic>