A frozen string is a string literal object that is compatible with the managed heap and has been serialized into a native image by the Native Image Generator (Ngen.exe). The StringFreezingAttribute attribute allows you to optimize your code by pre-allocating string literals during native image generation rather than at run time. After a string literal has been frozen, code can simply refer to the string using the address in the native image.

The StringFreezingAttribute must be applied on the assembly level.

Note that the common language runtime (CLR) cannot unload any native image that has a frozen string because any object in the heap might refer to the frozen string. Therefore, you should use the StringFreezingAttribute class only in cases where the native image that contains the frozen string is shared heavily.