Feb 16, 2011 at 4:40 AM
Edited Feb 16, 2011 at 11:45 AM
It looks like there is no such thing as a "static class" for the CLR. C# static classes are abstract sealed subclasses of System.Object with no instance constructor.
Even so ITypeDefinition has a IsStatic property that is supposed to be true if the condition above are met but that is not even consulted by PeWriter.
It's not a bug or a big problem but I find it's an inconsistency.
I wrote this just in case you didn't notice that. Otherwise please ignore this message.
What I meant is that, as I see it, being "static" is not a property of the metadata model of a type and IsStatic should not be a property of ITypeDefinition. If, as it seems, IsStatic has the only purpose to provide a quick way to check if a type is
a "static class à la C#" there should be a TypeHelper.IsStaticClass(ITypeReference) method for the same purpose.