У меня есть следующий общий метод:
// 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 (string) не требует явного параметра типа «T» при любом вызове.
Я рассмотрел это, и я не знаю способа сделать то, что он запрашивает, без ограничения типов, которые можно десериализовать. Я свободно признаю, что могу упустить простой способ исправить это.
Но если это не так, то единственный ли я способ подавить это предупреждение? У меня чистый проект без предупреждений или сообщений. Я хотел бы сохранить это так.
Полагаю, я спрашиваю "почему это предупреждение?" В лучшем случае кажется, что это должно быть сообщение. И даже это кажется немного большим. Либо это может, либо это не может быть исправлено. Если это невозможно, тогда вы просто застряли с предупреждением, не прибегая к помощи, но подавляя его. Я не прав?