c# - C#_List of objects 中通过 XElement 的属性
问题描述
我有一个类“WsReferenceValue”,其中包含其他类“Characteristic”的列表,并且类 Characteristic 具有另一个类“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,所以我删除了定义类,然后我将列表 xelement 添加到一个 xelement 中,我得到了我的结果,
我的 WsReferenceValue 类:
[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>
推荐阅读
- java - 在java中使用rest客户端下载多个文件
- grid - 日期选择器和 select2 未在不可见列的 w2ui 网格中初始化
- sql - 变量使查询性能变差
- python - Python过滤器函数 - 如果列表中的单词以特定字符开头
- c - ncurses 编译:'stdscr'/lib64/libtinfo.so.6:添加符号时出错
- audio - 使用 FFmpeg 命令覆盖 mp3 文件时长度会减少
- php - 共享主机上的 Laravel 任务调度不起作用
- swift - 确定是否需要调用 AudioKit.start()
- ssl-certificate - Mandrill webhooks,SSL证书验证失败,验证CA证书没问题
- python - 检查活动选项卡是否正确