CodeAttributeArgument クラス

定義

メタデータ属性宣言で使用する引数を表します。Represents an argument used in a metadata attribute declaration.

public ref class CodeAttributeArgument
public class CodeAttributeArgument
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Serializable]
public class CodeAttributeArgument
type CodeAttributeArgument = class
Public Class CodeAttributeArgument
継承
CodeAttributeArgument
属性

次のコードでは、クラスを作成し、クラスがシリアル化可能で、互換性のために残されていることを宣言するコード属性を追加しています。The following code creates a class, and adds code attributes to declare that the class is serializable and obsolete.

#using <System.dll>
#using <System.Xml.dll>

using namespace System;
using namespace System::CodeDom;
using namespace System::CodeDom::Compiler;

int main()
{
    // Declare a new type called Class1.
    CodeTypeDeclaration^ class1 = gcnew CodeTypeDeclaration("Class1");

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

    CodeAttributeArgument^ codeAttr =
        gcnew CodeAttributeArgument( gcnew CodePrimitiveExpression("This class is obsolete."));
    codeAttrDecl = gcnew 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, gcnew CodeGeneratorOptions());
}

// The CPP code generator produces the following source code for the preceeding example code:
//
//[System.Serializable()]
//[System.Obsolete("This class is obsolete.")]
//public class Class1 {
//}
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 {
// }
Imports System.CodeDom
Imports System.CodeDom.Compiler

Public Class CodeGenExample

    Shared Sub Main
        ' Declare a new type called Class1.
        Dim class1 as New CodeTypeDeclaration("Class1")

        ' Use attributes to mark the class as serializable and obsolete.
        Dim codeAttrDecl As New CodeAttributeDeclaration("System.Serializable")
        class1.CustomAttributes.Add(codeAttrDecl)

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

        ' Create a Visual Basic code provider
        Dim provider As CodeDomProvider = CodeDomProvider.CreateProvider("VisualBasic")

        ' Generate code and send the output to the console
        provider.GenerateCodeFromType(class1, Console.Out, New CodeGeneratorOptions())
    End Sub

End Class

' The Visual Basic code generator produces the following source code for the preceeding example code:
'
' <System.Serializable(),  _
'  System.Obsolete("This class is obsolete.")>  _
' Public Class Class1
' End Class

注釈

CodeAttributeArgument を使用すると、属性コンストラクターの1つの引数の値、または属性のプロパティを初期化する値のいずれかを表すことができます。CodeAttributeArgument can be used to represent either the value for a single argument of an attribute constructor, or a value with which to initialize a property of the attribute.

Value プロパティは、引数の値を示します。The Value property indicates the value of the argument. Name プロパティは、値を割り当てる属性のプロパティの名前を指定します (使用する場合)。The Name property, when used, indicates the name of a property of the attribute to which to assign the value.

属性宣言は、実行時に属性のコンストラクターに渡されるいくつかの引数を使用して頻繁に初期化されます。Attribute declarations are frequently initialized with a number of arguments that are passed into the constructor of the attribute at run time. 属性のコンストラクターに引数を指定するには、各引数の CodeAttributeArgumentCodeAttributeDeclarationArguments コレクションに追加します。To provide arguments to the constructor for an attribute, add a CodeAttributeArgument for each argument to the Arguments collection of a CodeAttributeDeclaration. CodeAttributeArgumentValue プロパティのみを初期化する必要があります。Only the Value property of each CodeAttributeArgument needs to be initialized. コレクション内の引数の順序は、属性のコンストラクターのメソッドシグネチャの引数の順序と一致している必要があります。The order of arguments within the collection must correspond to the order of arguments in the method signature of the constructor for the attribute.

設定するプロパティの名前と設定する値を示す CodeAttributeArgument を指定することで、コンストラクターでは使用できない属性のプロパティを設定することもできます。You can also set properties of the attribute that are not available through the constructor by providing a CodeAttributeArgument that indicates the name of the property to set, along with the value to set.

コンストラクター

CodeAttributeArgument()

CodeAttributeArgument クラスの新しいインスタンスを初期化します。Initializes a new instance of the CodeAttributeArgument class.

CodeAttributeArgument(CodeExpression)

値を指定して、CodeAttributeArgument クラスの新しいインスタンスを初期化します。Initializes a new instance of the CodeAttributeArgument class using the specified value.

CodeAttributeArgument(String, CodeExpression)

名前と値を指定して、CodeAttributeArgument クラスの新しいインスタンスを初期化します。Initializes a new instance of the CodeAttributeArgument class using the specified name and value.

プロパティ

Name

属性の名前を取得または設定します。Gets or sets the name of the attribute.

Value

属性引数の値を取得または設定します。Gets or sets the value for the attribute argument.

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)

適用対象

こちらもご覧ください