2013-04-18 134 views
0

所以我想要做的是傳入一個對象列表,但我有許多不同的。 (劍,胸鎧等)。我怎樣才能將多個對象傳遞給參數?傳遞參數與多個對象

ListToSave = testObject.ChestPlateList;下面的部分是我想要傳遞對象列表的部分。

public void DeserializeFromXML(List<ChestPlate> ListToSave, string filepath) 
     { 
      XmlSerializer deserializer = new XmlSerializer(typeof(GameObjectData)); 
      FileStream fs = new FileStream(filepath, FileMode.Open); 
      XmlReader reader = new XmlTextReader(fs); 

      if (!reader.EOF) 
      { 
       GameObjectData testObject = (GameObjectData)deserializer.Deserialize(reader); 
       ListToSave = testObject.ChestPlateList; 
       Console.WriteLine("{0}", testObject.ChestPlateList);    
      }   
     } 
+0

做 '劍' 和 'Chestplates' 繼承從同一祖先? –

+0

是的,它全部繼承自「GameObject」。 – callum

+0

那麼爲什麼不通過'名單'? –

回答

0

試試這個(未經測試)

public void SerializeToXML(GameObjectData theData, string filepath) 
{ 
    XmlSerializer serializer = new XmlSerializer(typeof(theData)); 
    TextWriter writer = new StreamWriter(filepath); 
    serializer.Serialize(writer, ListToSave); 
} 

public GameObjectData DeserializeFromXML(string filepath) 
{ 
    GameObjectData result = null; 
    XmlSerializer deserializer = new XmlSerializer(typeof(GameObjectData)); 
    FileStream fs = new FileStream(filepath, FileMode.Open); 
    XmlReader reader = new XmlTextReader(fs); 

    if (!reader.EOF) 
    { 
     result = (List<GameObject>)deserializer.Deserialize(reader); 

     Console.WriteLine("{0}", result.ChestPlateList);    
    } 
    return result;  
} 
+0

它必須是包含對象列表的「GameObjectData」。 爲什麼我使用「GameObjectData」作爲testObject。 – callum