2016-06-12 26 views
0

我有一個使用泛型類型下面的代碼:在xs.Serialize(fs,T)上使用泛型T獲取錯誤;

public static bool SaveConfigurationData<T>(string filePath) 
     { 
      bool returnVal = false; 

      try 
      { 
       // Create and XmlSerializer to serialize the data to a file 
       XmlSerializer xs = new XmlSerializer(typeof(T)); 
       string textSerialized = string.Empty; 

       using (FileStream fs = new FileStream(filePath, FileMode.Create)) 
       { 
        xs.Serialize(fs, T); 
       } 

       returnVal = true; 
      } 
      catch (Exception ex) 
      { 
       returnVal = false; 
      } 


      return returnVal; 
     } 

但即時得到就行了以下錯誤:xs.Serialize(fs, T);

enter image description here

任何線索?

+0

仔細看看'xs.Serialize(fs,T);' – JanDotNet

回答

3

所有你做的是說,你的方法適用於泛型類型T,這將是任何類型的來電者提供,但你有沒有實際提供T類型的變量,或T類型的參數。通常情況下,你想在你的方法中序列化一些類型爲T的東西,你會得到如下所示的東西。

public static bool SaveConfigurationData<T>(T data, string filePath) 
{ 
    ... 
    using (FileStream fs = new FileStream(filePath, FileMode.Create)) 
    { 
     xs.Serialize(fs, data); // data is of type T 
    } 
    ... 
}