2013-07-04 46 views
0

我想通過使用StreamWriter的方法序列化一個對象,但不知何故我無法動態定義文件的路徑。StreamWriter參數是不合法的

例子:

public void SerializeToXML(Record aRecord) 
{ 
    XmlSerializer serializer = new XmlSerializer(typeof(Movie)); 

    var path = string.Format("@\"{0}\\{1}.xml\"", "C:\\Objects", aRecord.GetHashCode()); 

    TextWriter textWriter = new StreamWriter(path); 

    serializer.Serialize(textWriter, movie); 

    textWriter.Close(); 
} 

,然後它說:"Illegal characters in path" on the line :TextWriter textWriter = new StreamWriter(path);

當我passinging它staticaly它wokrs這種格式,但是當我想考績它dymanicaly它不接受它。

回答

3

你的路徑與@號開始。我不認爲你想要它。我懷疑你是試圖使用逐字字符串文字,但有點困惑。我懷疑你只是想:

var path = string.Format(@"C:\Objects\{0}.xml", aRecord.GetHashCode()); 

或者,你可以先制定出文件名,然後使用Path.Combine根吧。在文件名使用GetHashCode

注意,幾乎總是一個壞主意。它不能保證是唯一的,除了作爲平等檢查的第一通之外,它沒有真正的意義。目前尚不清楚你想達到什麼目標,但幾乎肯定是錯誤的做法。

此外,你應該使用using聲明爲您的作家:

using (var writer = File.CreateText(path)) 
{ 
    serializer.Serialize(writer, movie); 
} 
相關問題