Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 文件映射体系结构_C#_Architecture_Design Patterns - Fatal编程技术网

C# 文件映射体系结构

C# 文件映射体系结构,c#,architecture,design-patterns,C#,Architecture,Design Patterns,我需要知道如何通过上课来实现这一目标: 我们公司有两个不同的应用程序(App1、App2) Appl可以导出包含已知项(ID、名称)的xml 我们需要app2来导入此数据,但app2显示不同的项(CarID、CarName) 这个项目定义如下,带有映射信息 <CarID> <Mapping name="ID"/> </CarID> <CarNAme> <Mapping name="Name"/> </CarNAme>"

我需要知道如何通过上课来实现这一目标:

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

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

我们需要app2来导入此数据,但app2显示不同的项(CarID、CarName) 这个项目定义如下,带有映射信息

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

"
我将如何通过类或体系结构来实现这一点,我将使用c语言来开发它#
我需要一个接口,因为我们可能支持不同类型的文件,而不仅仅是xml。您可以使用属性将属性映射到xmlelements。
Car1
Car2
在序列化时将生成相同的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);
    }
}

如果您引入两种类型的文件,您的问题难道不会得到解决吗?一种定义实际映射的配置文件和具有相同格式的单独数据文件