Ответ 1
Arrays
не имеет атрибутаSerializable
, а также не реализуетISerializable
interface
Array
класс, неявный базовый класс массивов С#, имеет [SerializableAttribute]
:
[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class Array : ICloneable, IList, ICollection,
IEnumerable, IStructuralComparable, IStructuralEquatable
Также представляется, что компилятор добавляет [SerializableAttribute]
к самому типу массива
foreach (var a in typeof(string[]).GetCustomAttributes(false)) {
Console.WriteLine(a); // Prints "System.SerializableAttribute"
}
Передача false
в GetCustomAttributes
гарантирует, что возвращаются только атрибуты этого класса, а не его базовые классы.