2016-06-12 3 views
0

I持ってジェネリック型使用する次のコード: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 
    } 
    ... 
} 
関連する問題