Я портирую проект из. NET framework (4.5) в. NET standard (2.0). Фреймворковая версия этого раздела кода кажется достаточно счастливой, но стандартный раздел дает мне предупреждение CA2235
Кажется, не имеет значения, если
- Это авто свойство, свойство с полем подложки или просто прямое поле
- Независимо от того, доступно ли оно только для чтения (т. е. имеет ли оно установщик)
- У меня есть конструктор с 0 параметрами или нет (иногда актуально с проблемами сериализации)
Итак, в приведенном ниже коде:
[Serializable]
public class MyTestClass
{
// "MyString" below produces Warning CA2235
// Field MyString is a member of type MyTestClass which is serializable but is of
// type string which is not serializable PluginsInterface
public string MyString { get; set; }
// Field MyNullableInt is a member of type MyTestClass which is serializable but is of
// type int? which is not serializable
public int? MyNullableInt { get; set; }
//Both of the following seem to be OK
public int MyInt { get; set; }
public SomeEnum MyEnum { get; set; }
}
public enum SomeEnum
{
One,
Two,
Three
}
В поисках, которые я сделал, кажется, это было исправлено . Я перешел на страницу проекта и на вкладку «Анализ кода» и установил пакет анализатора, который добавил новый пакет NuGet.
Я думал, что было бы все, что мне нужно было сделать, чтобы получить исправление, но я думаю, что нет. Чего мне еще не хватает? (Если это имеет значение, я использую VS 2019)
Прежде чем вы отсылаете меня к сообщению от Mar c Gravell , давайте предположим, что в моей ситуации мне нужен атрибут Serializable
, Меня больше интересует, почему я до сих пор получаю его, если он предположительно исправлен?