Dies ist eine CLR-Einschränkung. Nur primitive Konstanten oder Arrays von Primitiven können als Attributparameter verwendet werden. Der Grund dafür ist, dass ein Attribut vollständig in Metadaten codiert werden muss. Dies unterscheidet sich von einem Methodenkörper, der in IL codiert ist. Die Verwendung von MetaData schränkt den Umfang der Werte, die verwendet werden können, nur stark ein. In der aktuellen Version der CLR sind Metadatenwerte auf Grundelemente, Null, Typen und Arrays von Grundelementen beschränkt (möglicherweise wurde ein untergeordnetes Element übersehen).
Dezimalstellen, während ein Basistyp kein primitiver Typ ist und daher nicht in Metadaten dargestellt werden kann, wodurch verhindert wird, dass er ein Attributparameter ist.