Edit

Share via


XObject.AddAnnotation(Object) Method

Definition

Adds an object to the annotation list of this XObject.

public:
 void AddAnnotation(System::Object ^ annotation);
public void AddAnnotation (object annotation);
member this.AddAnnotation : obj -> unit
Public Sub AddAnnotation (annotation As Object)

Parameters

annotation
Object

An object that contains the annotation to add.

Examples

The following example adds an annotation to an XElement.

public class MyAnnotation {  
    private string tag;  
    public string Tag {get{return tag;} set{tag=value;}}  
    public MyAnnotation(string tag) {  
        this.tag = tag;  
    }  
}  

public class Program {  
    public static void Main(string[] args) {     
        MyAnnotation ma = new MyAnnotation("T1");  
        XElement root = new XElement("Root", "content");  
        root.AddAnnotation(ma);  

        MyAnnotation ma2 = (MyAnnotation)root.Annotation<MyAnnotation>();  
        Console.WriteLine(ma2.Tag);  
    }  
}  
Public Class MyAnnotation  
    Private _tag As String  

    Property Tag() As String  
        Get  
            Return Me._tag  
        End Get  
        Set(ByVal Value As String)  
            Me._tag = Value  
        End Set  
    End Property  

    Public Sub New(ByVal tag As String)  
        Me._tag = tag  
    End Sub  
End Class  

Module Module1  
    Sub Main()  
        Dim ma As MyAnnotation = New MyAnnotation("T1")  
        Dim root As XElement = <Root>content</Root>  
        root.AddAnnotation(ma)  

        Dim ma2 As MyAnnotation = DirectCast(root.Annotation(Of MyAnnotation)(), MyAnnotation)  
        Console.WriteLine(ma2.Tag)  
    End Sub  

End Module  

This example produces the following output:

T1  

Remarks

Note that annotations are not part of the infoset; they are not persisted, or displayed by ToString. Also, if you import an XML Namespace into your VB project and call AddAnnotation with the SaveOptions.OmitDuplicateNamespaces enumeration value, then only one element will contain the XML Namespace attribute instead of every element. For more information, see Removing duplicate namespaces in XML Literals.

Applies to

See also