2010-05-11 91 views
2

我需要知道我怎樣才能實現這一目標的類:我們在公司的兩個不同的應用(應用1,應用2)文件映射架構

申請可以導出XML與

知道項目(ID,名稱)

我們需要APP 2導入該數據,但應用2顯示不同的項目(CarID,CarName) 這個項目像這樣定義與映射信息

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

我怎樣才能達到這個類或建築,我會開發出這種用C# 我需要一個接口,因爲我們可以支持不同類型的文件不只是XML

回答

0

如果您引入2種類型的文件,是不是您的問題得到解決?一個配置文件,它定義了具有相同格式的實際映射和單獨的數據文件。

1

您可以使用屬性屬性映射到xmlelements的。
類別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); 
    } 
}