我有以下通用方法:代碼分析警告CA1004與泛型方法
// Load an object from the disk
public static T DeserializeObject<T>(String filename) where T : class
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
try
{
TextReader textReader = new StreamReader(filename);
var result = (T)xmlSerializer.Deserialize(textReader);
textReader.Close();
return result;
}
catch (FileNotFoundException)
{ }
return null;
}
我編譯時得到以下警告:
CA1004:Microsoft.Design:考慮設計,其中「MiscHelpers.DeserializeObject (字符串)'在任何調用中都不需要顯式類型參數'T'。
我已經考慮過這一點,我不知道一種方法來執行它所要求的限制可以反序列化的類型。我坦率地承認,我可能錯過了一個簡單的方法來解決這個問題。
但是,如果我不是,那麼我唯一的辦法就是壓制這個警告嗎?我有一個乾淨的項目,沒有任何警告或消息。我想保持這種方式。
我猜我在問「爲什麼這是警告?」充其量,這似乎應該是一個信息。即使這似乎有點多。它可以或不能被修復。如果它不能,那麼你只是停留在沒有追索權的警告之下,而是壓制它。我錯了嗎?
這是一個代碼分析警告,而不是編譯器警告。 – SLaks 2010-06-03 14:36:27
+1用於運行代碼分析。如果更多人這樣做,世界(或者至少它的代碼)會是一個更好的地方。 – SLaks 2010-06-03 14:42:56