XmlAnyElementAttributes 클래스

정의

XmlAnyElementAttribute 개체의 컬렉션을 나타냅니다.Represents a collection of XmlAnyElementAttribute objects.

public ref class XmlAnyElementAttributes : System::Collections::CollectionBase
public class XmlAnyElementAttributes : System.Collections.CollectionBase
type XmlAnyElementAttributes = class
    inherit CollectionBase
Public Class XmlAnyElementAttributes
Inherits CollectionBase
상속
XmlAnyElementAttributes

예제

다음 예제에서는 새 XmlAnyElementAttribute 를 통해 액세스 하는 개체의 컬렉션에 추가 된 XmlAnyElements 속성입니다.The following example creates a new XmlAnyElementAttribute and adds it to the collection of objects accessed through the XmlAnyElements property. 합니다 XmlAttributes 에 추가 되는 XmlAttributeOverrides 만드는 데 사용 되는 XmlSerializer합니다.The XmlAttributes is then added to a XmlAttributeOverrides which is used to create an XmlSerializer. XmlSerializer serialize 하거나 개체를 deserialize 하는 데 사용 됩니다.The XmlSerializer is used to serialize or deserialize an object. 사용 하는 효과 확인 하려면를 XmlAnyElementAttributes 속성을 실행 하 여 UnknownElements.xml 라는 XML 문서 만들기를 SerializeObject 에서 메서드를 Main 메서드.To see the effect of using the XmlAnyElementAttributes property, create an XML document named UnknownElements.xml by running the SerializeObject method in the Main method. (알 수 없는) 다른 요소를 포함 하려면 결과 문서를 편집 합니다.Edit the resulting document to include other (unknown) elements. 주석으로 처리를 SerializeObject 에서 호출 합니다 Main 메서드를에 대 한 호출을 주석 처리 제거를 DeserializeObject 이름과 알 수 없는 XML 요소의 값을 출력 하는 메서드를 합니다.Comment out the SerializeObject call in the Main method, and uncomment the call to the DeserializeObject method, which prints out the name and value of any unknown XML element.

#using <System.dll>
#using <System.xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;
using namespace System::Xml;
public ref class Group
{
public:
   String^ GroupName;

   [XmlAnyElement]
   array<Object^>^Things;
};

void SerializeObject( String^ filename );
void DeserializeObject( String^ filename );
XmlSerializer^ CreateOverrideSerializer();
int main()
{
   // 1 Run this and create the XML document.
   // 2 Add new elements to the XML document.
   // 3 Comment out the next line, and uncomment
   // the DeserializeObject line to deserialize the
   // XML document and see unknown elements.
   SerializeObject( "UnknownElements.xml" );

   // DeserializeObject(S"UnknownElements.xml");
}

void SerializeObject( String^ filename )
{
   XmlSerializer^ ser = gcnew XmlSerializer( Group::typeid );
   TextWriter^ writer = gcnew StreamWriter( filename );
   Group^ g = gcnew Group;
   g->GroupName = "MyGroup";
   ser->Serialize( writer, g );
   writer->Close();
}

void DeserializeObject( String^ filename )
{
   XmlSerializer^ ser = CreateOverrideSerializer();

   // A FileStream is needed to read the XML document.
   FileStream^ fs = gcnew FileStream( filename,FileMode::Open );
   Group^ g = safe_cast<Group^>(ser->Deserialize( fs ));
   fs->Close();
   Console::WriteLine( g->GroupName );
   Console::WriteLine( g->Things->Length );
   for ( int i = 0; i < g->Things->Length; ++i )
   {
      XmlElement^ xelement = safe_cast<XmlElement^>(g->Things[ i ]);
      Console::WriteLine( "{0}: {1}", xelement->Name, xelement->InnerXml );
   }
}

XmlSerializer^ CreateOverrideSerializer()
{
   XmlAnyElementAttribute^ myAnyElement = gcnew XmlAnyElementAttribute;
   XmlAttributeOverrides^ xOverride = gcnew XmlAttributeOverrides;
   XmlAttributes^ xAtts = gcnew XmlAttributes;
   xAtts->XmlAnyElements->Add( myAnyElement );
   xOverride->Add( Group::typeid, "Things", xAtts );
   return gcnew XmlSerializer( Group::typeid,xOverride );
}
using System;
using System.IO;
using System.Xml.Serialization;
using System.Xml;

public class Group{
   public string GroupName;
   [XmlAnyElement]
   public object[]Things;

}

public class Test{
   static void Main(){
      Test t = new Test();
      // 1 Run this and create the XML document.
      // 2 Add new elements to the XML document.
      // 3 Comment out the new line, and uncomment
      // the DeserializeObject line to deserialize the
      // XML document and see unknown elements.
      t.SerializeObject("UnknownElements.xml");
     
      // t.DeserializeObject("UnknownElements.xml");
   }

   private void SerializeObject(string filename){
      XmlSerializer ser = new XmlSerializer(typeof (Group));
      TextWriter writer = new StreamWriter(filename);
      Group g = new Group();
      g.GroupName = "MyGroup";
      ser.Serialize(writer, g);
      writer.Close();
   }

   
   private void DeserializeObject(string filename){

      XmlSerializer ser = CreateOverrideSerializer();
      // A FileStream is needed to read the XML document.
      FileStream fs = new FileStream(filename, FileMode.Open);
     Group g = (Group)
        ser.Deserialize(fs);
     fs.Close();
     Console.WriteLine(g.GroupName);
     Console.WriteLine(g.Things.Length);
     foreach(XmlElement xelement in g.Things){
     Console.WriteLine(xelement.Name + ": " + xelement.InnerXml);
     }
   }

   private XmlSerializer CreateOverrideSerializer(){
      XmlAnyElementAttribute myAnyElement = 
      new XmlAnyElementAttribute();
      XmlAttributeOverrides xOverride = 
      new XmlAttributeOverrides();
      XmlAttributes xAtts = new XmlAttributes();
      xAtts.XmlAnyElements.Add(myAnyElement);
      xOverride.Add(typeof(Group), "Things", xAtts);
      return new XmlSerializer(typeof(Group) , xOverride);
   }
}
Imports System.IO
Imports System.Xml.Serialization
Imports System.Xml

Public Class Group
   Public GroupName As String 
   <XmlAnyElement> _
   Public Things () As object
End Class

Public Class Test
   Shared Sub Main()
      Dim t As Test = New Test()
      ' 1 Run this and create the XML document.
      ' 2 Add New elements to the XML document.
      ' 3 Comment out the New line, and uncomment
      ' the DeserializeObject line to deserialize the
      ' XML document and see unknown elements.
     t.SerializeObject("UnknownElements.xml")
     
      't.DeserializeObject("UnknownElements.xml")
   End Sub

   Private Sub SerializeObject(filename As String)
      Dim ser As XmlSerializer = New XmlSerializer(GetType (Group))
      Dim writer As TextWriter = New StreamWriter(filename)
      
      Dim g As Group = New Group()
      g.GroupName = "MyGroup"
      ser.Serialize(writer, g)
      writer.Close()
   End Sub

   
   Private Sub DeserializeObject(filename As String)

      Dim ser As XmlSerializer = CreateOverrideSerializer()
      ' A FileStream is needed to read the XML document.
      Dim fs As FileStream = New FileStream(filename, FileMode.Open)
     Dim g As Group = CType( _
        ser.Deserialize(fs), Group)
     fs.Close()
     Console.WriteLine(g.GroupName)
     Console.WriteLine(g.Things.Length)
     Dim xelement As XmlELement
     for each xelement in g.Things
        Console.WriteLine(xelement.Name &": " & xelement.InnerXml)
     next
   End Sub
   

   Private Function CreateOverrideSerializer() As XmlSerializer 
      Dim myAnyElement As XmlAnyElementAttribute = _
      New XmlAnyElementAttribute()
      Dim xOverride As XmlAttributeOverrides = _
      New XmlAttributeOverrides()
      Dim xAtts As XmlAttributes = New XmlAttributes()
      xAtts.XmlAnyElements.Add(myAnyElement)
      xOverride.Add(GetType(Group), "Things", xAtts)
      return New XmlSerializer(GetType(Group) , xOverride)
   End Function
End Class

설명

사용 된 XmlAnyElementAttributes 집합이의 동작을 재정의 XmlAnyElementAttribute 개체.Use the XmlAnyElementAttributes to override the behavior of a set of XmlAnyElementAttribute objects. 여러 인스턴스를 XmlAnyElementAttribute 클래스 멤버와 각 인스턴스마다 고유한 클래스 적용할 수 있습니다 Name 속성 값;이 지시는 XmlSerializer 적절 한 배열로 명명된 된 요소에서 알 수 없는 요소를 수집 하려면 .Multiple instances of the XmlAnyElementAttribute class can be applied to a class member, as long as each instance has a distinct Name property value; this instructs the XmlSerializer to collect unknown elements under the named element into the appropriate array. 여러 reason이 대 한 인스턴스를 XmlAnyElementAttribute 클래스에 추가할 수 있습니다는 XmlAnyElementAttributes합니다.It is for this reason that multiple instances of the XmlAnyElementAttribute class can be added to the XmlAnyElementAttributes.

집합을 재정의 하려면 XmlAnyElementAttribute 개체:To override a set of XmlAnyElementAttribute objects:

  1. 만들기는 XmlAnyElementAttributes합니다.Create an XmlAnyElementAttributes.

  2. 집합을 만듭니다 XmlAnyElementAttribute 개체 이며 각 개체를 사용 하 여 컬렉션에 추가 된 Add 메서드.Create the set of XmlAnyElementAttribute objects, and add each object to the collection using the Add method.

  3. 만들기는 XmlAttributes합니다.Create an XmlAttributes.

  4. 설정 된 XmlAnyElements 속성을는 XmlAnyElementAttributes합니다.Set the XmlAnyElements property to the XmlAnyElementAttributes.

  5. 만들기는 XmlAttributeOverrides합니다.Create an XmlAttributeOverrides.

  6. 추가 합니다 XmlAttributesXmlAttributeOverrides 사용 하 여를 Add 메서드.Add the XmlAttributes to the XmlAttributeOverrides using the Add method.

  7. 인스턴스를 만듭니다는 XmlSerializer 를 사용 하는 XmlAttributeOverrides합니다.Create an instance of the XmlSerializer using the XmlAttributeOverrides.

  8. Serialize 하거나 deserialize 집합을 포함 하는 개체 XmlAnyElementAttribute 개체입니다.Serialize or deserialize an object that contains the set of XmlAnyElementAttribute objects.

생성자

XmlAnyElementAttributes()

XmlAnyElementAttributes 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the XmlAnyElementAttributes class.

속성

Capacity

CollectionBase에 포함될 수 있는 요소의 수를 가져오거나 설정합니다.Gets or sets the number of elements that the CollectionBase can contain.

(다음에서 상속됨 CollectionBase)
Count
InnerList

가져옵니다는 ArrayList 의 요소 목록을 포함 하는 CollectionBase 인스턴스.Gets an ArrayList containing the list of elements in the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
Item[Int32]

지정된 인덱스에 있는 XmlAnyElementAttribute를 가져오거나 설정합니다.Gets or sets the XmlAnyElementAttribute at the specified index.

List

가져옵니다는 IList 의 요소 목록을 포함 하는 CollectionBase 인스턴스.Gets an IList containing the list of elements in the CollectionBase instance.

(다음에서 상속됨 CollectionBase)

메서드

Add(XmlAnyElementAttribute)

XmlAnyElementAttribute를 컬렉션에 추가합니다.Adds an XmlAnyElementAttribute to the collection.

Clear()
Contains(XmlAnyElementAttribute)

지정된 XmlAnyElementAttribute가 컬렉션에 있는지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether the specified XmlAnyElementAttribute exists in the collection.

CopyTo(XmlAnyElementAttribute[], Int32)

대상 배열의 지정된 인덱스에서 시작하여 전체 컬렉션을 호환 가능한 XmlElementAttribute 개체의 1차원 배열에 복사합니다.Copies the entire collection to a compatible one-dimensional array of XmlElementAttribute objects, starting at the specified index of the target array.

Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
GetEnumerator()
GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
IndexOf(XmlAnyElementAttribute)

지정된 XmlAnyElementAttribute의 인덱스를 가져옵니다.Gets the index of the specified XmlAnyElementAttribute.

Insert(Int32, XmlAnyElementAttribute)

지정된 인덱스의 컬렉션에 XmlAnyElementAttribute를 삽입합니다.Inserts an XmlAnyElementAttribute into the collection at the specified index.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
OnClear()

CollectionBase 인스턴스의 콘텐츠를 지운 후에 추가로 사용자 지정 프로세스를 수행합니다.Performs additional custom processes when clearing the contents of the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnClearComplete()

내용을 지운 후 사용자 지정 프로세스를 추가로 수행 합니다 CollectionBase 인스턴스.Performs additional custom processes after clearing the contents of the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnInsert(Int32, Object)

새 요소를 삽입 하기 전에 추가로 사용자 지정 프로세스를 수행 합니다 CollectionBase 인스턴스.Performs additional custom processes before inserting a new element into the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnInsertComplete(Int32, Object)

새 요소를 삽입 한 후 추가 사용자 지정 프로세스를 수행 합니다 CollectionBase 인스턴스.Performs additional custom processes after inserting a new element into the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnRemove(Int32, Object)

요소를 제거 하는 경우 추가 사용자 지정 프로세스를 수행 합니다 CollectionBase 인스턴스.Performs additional custom processes when removing an element from the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnRemoveComplete(Int32, Object)

요소를 제거한 후 추가 사용자 지정 프로세스를 수행 합니다 CollectionBase 인스턴스.Performs additional custom processes after removing an element from the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnSet(Int32, Object, Object)

에 값을 설정 하기 전에 추가로 사용자 지정 프로세스를 수행 합니다 CollectionBase 인스턴스.Performs additional custom processes before setting a value in the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnSetComplete(Int32, Object, Object)

값을 설정한 후 추가 사용자 지정 프로세스를 수행 합니다 CollectionBase 인스턴스.Performs additional custom processes after setting a value in the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnValidate(Object)

값 유효성을 검사할 때 추가로 사용자 지정 프로세스를 수행 합니다.Performs additional custom processes when validating a value.

(다음에서 상속됨 CollectionBase)
Remove(XmlAnyElementAttribute)

지정된 XmlAnyElementAttribute를 컬렉션에서 제거합니다.Removes the specified XmlAnyElementAttribute from the collection.

RemoveAt(Int32)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

ICollection.CopyTo(Array, Int32)
ICollection.IsSynchronized
ICollection.SyncRoot
IList.Add(Object)
IList.Contains(Object)
IList.IndexOf(Object)
IList.Insert(Int32, Object)
IList.IsFixedSize
IList.IsReadOnly
IList.Item[Int32]
IList.Remove(Object)

확장 메서드

Cast<TResult>(IEnumerable)

IEnumerable의 요소를 지정된 형식으로 캐스팅합니다.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

지정된 형식에 따라 IEnumerable의 요소를 필터링합니다.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

쿼리를 병렬화할 수 있도록 합니다.Enables parallelization of a query.

AsQueryable(IEnumerable)

IEnumerableIQueryable로 변환합니다.Converts an IEnumerable to an IQueryable.

적용 대상