在c#中使用XML进行进程间通信

本文关键字:进程间通信 XML | 更新日期: 2023-09-27 18:04:04

我有两个应用:X和Y。X有一组变量(存储在类的对象中),这些变量必须传输到y。我计划使用xml文件作为存储在磁盘上的记录,两个应用程序都可以按名称访问该记录。X将数据写入该xml文件,Y读取该文件。

我想我可以使用XmlSerializer (System.Xml.Serialization)来完成这一点。使用XmlSerializer,我可以创建如下所示的XML文件:

<MonsterCollection>
  <Monsters>
    <Monster name="a">
     <Health>5</Health>
    </Monster>
    <Monster name="b">
     <Health>3</Health>
    </Monster>
  </Monsters>
</MonsterCollection>

当Y读取这个XML文件时,它不知道变量Health的实际数据类型。因此,必须在X和y中定义原始类。是否也有办法将数据类型存储在xml文件中?最后,我想完成这样的事情:

<Monster name="a" type="" help="This is a monster">
  <var name="Health" type="uint16" val="5" help="Healthiness of this monster" /> 
</Monster>
<Monster name="b" type="" help="This is a monster">
  <var name="Health" type="uint16" val="3" help="Healthiness of this monster" /> 
</Monster>

在c#中使用XML进行进程间通信

可以使用下面提到的代码

 public class Monster 
{
    [XmlAttribute("name")]
    public string name {get;set;}
    [XmlAttribute("type")]
    public string type {get;set;}
    [XmlAttribute("val")]
    public int val { get; set; }
}

for ref serialize-object-to-element