Поделиться через


Предупреждение компилятора (уровень 2) CS3021

Обновлен: Ноябрь 2007

Сообщение об ошибке

"тип" не требуется атрибут CLSCompliant, так как сборка не имеет атрибута CLSCompliant
'type' does not need a CLSCompliant attribute because the assembly does not have a CLSCompliant attribute

Это предупреждение возникает, если строка [CLSCompliant(false)] появляется в классе сборки, не содержащей атрибут CLSCompliant уровня сборки, которому присвоено значение "true" (т. е. в ней отсутствует строка [assembly: CLSCompliant(true)]). Поскольку сборка не объявляет себя CLS-совместимой, то любому объекту этой сборки нет необходимости объявлять себя несовместимым, поскольку это подразумевается по умолчанию. Дополнительные сведения о совместимости со спецификацией CLS см. в разделе Написание CLS-совместимого кода.

Чтобы избежать появления этого предупреждения, удалите атрибут, вызвавший предупреждение, или добавьте атрибут уровня сборки.

Пример

Следующий пример приводит к возникновению предупреждения CS3021:

// CS3021.cs
using System;
// Uncomment the following line to declare the assembly CLS Compliant,
// and avoid the warning without removing the attribute on the class.
//[assembly: CLSCompliant(true)]

// Remove the next line to avoid the warning.
[CLSCompliant(false)]               // CS3021
public class C
{
    public static void Main()
    {
    }
}

См. также

Основные понятия

Спецификация CLS