Прочитать на английском

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


CodeAttributeArgument Класс

Определение

Представляет аргумент, используемый в объявлении атрибута метаданных.

public class CodeAttributeArgument
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class CodeAttributeArgument
Наследование
CodeAttributeArgument
Атрибуты

Примеры

Следующий код создает класс и добавляет атрибуты кода, чтобы объявить, что класс является сериализуемым и устаревшим.

using System;
using System.CodeDom;
using System.CodeDom.Compiler;

public class CodeGenExample
{
    static void Main()
    {
        // Declare a new type called Class1.
        CodeTypeDeclaration class1 = new CodeTypeDeclaration("Class1");

        // Use attributes to mark the class as serializable and obsolete.
        CodeAttributeDeclaration codeAttrDecl =
            new CodeAttributeDeclaration("System.Serializable");
        class1.CustomAttributes.Add(codeAttrDecl);

        CodeAttributeArgument codeAttr =
            new CodeAttributeArgument( new CodePrimitiveExpression("This class is obsolete."));
        codeAttrDecl = new CodeAttributeDeclaration("System.Obsolete", codeAttr);
        class1.CustomAttributes.Add(codeAttrDecl);

        // Create a C# code provider
        CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp");

        // Generate code and send the output to the console
        provider.GenerateCodeFromType(class1, Console.Out, new CodeGeneratorOptions());
    }
}

// The C# code generator produces the following source code for the preceeding example code:
//
// [System.Serializable()]
// [System.Obsolete("This class is obsolete.")]
// public class Class1 {
// }

Комментарии

CodeAttributeArgument может использоваться для представления значения одного аргумента конструктора атрибута или значения, с помощью которого инициализируется свойство атрибута.

Свойство Value указывает значение аргумента . Свойство Name при использовании указывает имя свойства атрибута, которому присваивается значение.

Объявления атрибутов часто инициализируются с помощью ряда аргументов, которые передаются в конструктор атрибута во время выполнения. Чтобы предоставить аргументы конструктору для атрибута, добавьте CodeAttributeArgument для каждого аргумента в коллекцию ArgumentsCodeAttributeDeclaration. Необходимо инициализировать Value только свойство каждого из них CodeAttributeArgument . Порядок аргументов в коллекции должен соответствовать порядку аргументов в сигнатуре метода конструктора для атрибута .

Можно также задать свойства атрибута, недоступные в конструкторе, указав CodeAttributeArgument , который указывает имя устанавливаемого свойства, а также устанавливаемое значение.

Конструкторы

CodeAttributeArgument()

Инициализирует новый экземпляр класса CodeAttributeArgument.

CodeAttributeArgument(CodeExpression)

Инициализирует новый экземпляр класса CodeAttributeArgument с указанным значением.

CodeAttributeArgument(String, CodeExpression)

Инициализирует новый экземпляр класса CodeAttributeArgument, используя указанное имя и значение.

Свойства

Name

Возвращает или задает имя атрибута.

Value

Получает или задает значение для аргумента атрибута.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

Продукт Версии
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

См. также раздел