为什么一个类添加了[Serializable]标签就可以序列化,这个标签就是特性吧,内部是怎么实现和判断的,是反射特性来判断的吗,求指教
[AttributeUsage(AttributeTargets.Delegate | AttributeTargets.Enum | AttributeTargets.Struct | AttributeTargets.Class, Inherited=false), ComVisible(true)]
public sealed class SerializableAttribute : Attribute
{ // Methods
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] public SerializableAttribute();
internal static Attribute GetCustomAttribute(RuntimeType type);
internal static bool IsDefined(RuntimeType type);
}
internal static bool IsDefined(RuntimeType type) { return type.IsSerializable; }
反编译之后的SerializableAttribute定义
里面有IsDefined属性 来标记 是否可序列化 希望能帮到你