I was refreshing my memory on C#'s ThreadStaticAttribute
this morning, and the following line jumped out at me:
Use this attribute as it is, and do not derive from it.
This line is present in the docs for all versions of the .Net Framework, and Microsoft's own code analysis on the issue states that attributes should only be left unsealed if they are designed to be part of a hierarchy of attributes.
So - the ThreadStaticAttribute
class is not now, and does not appear ever to have been, sealed
. Why?