gpt4 book ai didi

c# - 文件映射架构

转载 作者:太空宇宙 更新时间:2023-11-03 14:30:20 27 4
gpt4 key购买 nike

我需要知道如何通过类(class)实现这个目标:

我们公司有两个不同的应用程序(App1,App2)

Appl 可以导出带有已知项(ID、名称)的 xml

我们需要 app2 来导入此数据,但 App2 显示不同的项目(CarID、CarName)并且这个项目用映射信息这样定义

<CarID>
<Mapping name="ID"/>
</CarID>
<CarNAme>
<Mapping name="Name"/>
</CarNAme>"

如何将其作为类或架构实现,我将使用 C# 进行开发我需要一个接口(interface),因为我们可能支持不同类型的文件,而不仅仅是 xml

最佳答案

您可以使用属性将属性映射到 xml 元素。
Car1Car2 将在序列化时生成相同的 xml。

[Serializable]
[XmlRoot("Car")]
public class Car1
{
[XmlElement("CarId")]
public int Id { get; set; }
[XmlElement("CarName")]
public string Name { get; set; }
}
[Serializable]
[XmlRoot("Car")]
public class Car2
{
public int CarId { get; set; }
public string CarName { get; set; }
}

[TestFixture]
public class CarTest
{
[Test]
public void SerializationTest()
{
var ms = new MemoryStream();
var car1 = new Car1 {Id = 10, Name = "Car1"};
var xs = new XmlSerializer(typeof(Car1));
var tw = new StreamWriter(ms);
xs.Serialize(tw, car1);

ms.Seek(0, SeekOrigin.Begin);
xs = new XmlSerializer(typeof(Car2));
var tr = new StreamReader(ms);
var car2 = (Car2)xs.Deserialize(tr);

Assert.AreEqual(car1.Id, car2.CarId);
Assert.AreEqual(car1.Name, car2.CarName);
}
}

关于c# - 文件映射架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2809077/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com