Ответ 1
Это не совсем предупреждение Visual Studio, это предупреждение, созданное инструментом FxCop. Что вы можете запустить из меню VS Analyze. FxCop - это статический анализатор, который ищет общие ошибки в .NET-программе, которые компилятор не будет отмечать. Большинство его предупреждений довольно неясны и редко являются действительно серьезными проблемами, вам нужно рассматривать это как "вы подумали об этом?". вид инструмента.
Небольшой факт, который он пытается вам напомнить, заключается в том, что класс Exception реализует ISerializable и имеет атрибут [Serializable]. Что является довольно сложным требованием, он делает базовый объект Exception сериализуемым в доменах приложений. Необходимо, потому что исключение не происходит из MarshalByRefObject. И необходимо разрешить код, который вы запускаете в другом домене приложения, чтобы генерировать исключения, которые вы можете уловить.
Итак, FxCop отмечает, что вы не сделали то же самое для своего собственного производного класса Exception. Это действительно проблема только в том случае, если вы когда-либо намереваетесь иметь код, который заставляет исключение запускаться в другом домене приложения. FxCop не настолько умен, чтобы знать, если вы это сделаете, это может только напомнить вам, что это пойдет не так, когда вы это сделаете. Это довольно необычно, поэтому не стесняйтесь игнорировать предупреждение, когда вы еще не знаете, будете ли вы или нет, или все это звучит как китайский для вас.