다음을 통해 공유


CollectionDataContractAttribute 클래스

정의

컬렉션 형식에 적용할 경우 컬렉션 항목 요소를 사용자 지정할 수 있습니다. 이 특성은 DataContractSerializer에서 serialize할 수 있는 유효한 컬렉션으로 인식한 형식에만 적용할 수 있습니다.

public ref class CollectionDataContractAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple=false, Inherited=false)]
public sealed class CollectionDataContractAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Struct, AllowMultiple=false, Inherited=false)>]
type CollectionDataContractAttribute = class
    inherit Attribute
Public NotInheritable Class CollectionDataContractAttribute
Inherits Attribute
상속
CollectionDataContractAttribute
특성

예제

다음 예제에서는 CollectionDataContractAttribute 클래스에서 상속된 클래스에 List<T>를 적용합니다. 이 코드에서는 NameItemName 속성을 사용자 지정 값으로 설정합니다.

[CollectionDataContract(Name = "Custom{0}List", ItemName = "CustomItem")]
public class CustomList<T> : List<T>
{
    public CustomList()
        : base()
    {
    }

    public CustomList(T[] items)
        : base()
    {
        foreach (T item in items)
        {
            Add(item);
        }
    }
}
<CollectionDataContract(Name := "Custom{0}List", ItemName := "CustomItem")> _
Public Class CustomList(Of T)
    Inherits List(Of T)
    Public Sub New()
        MyBase.New()
    End Sub

    Public Sub New(ByVal items() As T)
        MyBase.New()
        For Each item As T In items
            Add(item)
        Next item
    End Sub
End Class

ServiceModel 메타데이터 유틸리티 도구(Svcutil.exe)를 사용하여 클라이언트에 대한 코드를 생성하는 경우 코드는 다음 예제와 유사합니다. 클래스 이름은 ItemName과 함께 변경됩니다. 제네릭을 사용할 때는 형식 매개 변수 이름을 사용하여 결과 형식 이름이 만들어집니다.

// This is the generated code. Note that the class is renamed to "CustomBookList",
// and the ItemName is set to "CustomItem".
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.CollectionDataContractAttribute(ItemName = "CustomItem")]
public class CustomBookList : System.Collections.Generic.List<Microsoft.Security.Samples.Book>
{
}
' This is the generated code. Note that the class is renamed to "CustomBookList", 
' and the ItemName is set to "CustomItem".
<System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0"), System.Runtime.Serialization.CollectionDataContractAttribute(ItemName := "CustomItem")> _
Public Class CustomBookList
    Inherits System.Collections.Generic.List(Of Microsoft.Security.Samples.Book)
End Class

설명

CollectionDataContractAttribute 비 WCF 공급자의 데이터로 작업할 때 상호 운용성을 용이하게 하고 직렬화된 인스턴스의 정확한 모양을 제어하기 위한 것입니다. 따라서 ItemName 속성을 사용하면 컬렉션 내의 반복 항목의 이름을 제어할 수 있습니다. 이 기능은 공급자가 XSD 형식 이름인 "string" 대신에 "String"을 요소 형식 이름으로 사용하는 경우와 같이 공급자가 XML 요소 형식 이름을 배열 항목 이름으로 사용하지 않을 때 특히 유용합니다.

또한 CollectionDataContractAttribute는 키 컬렉션을 처리하기 위해 사전 형식과 함께 사용됩니다. 사전 형식은 IDictionary 또는 IDictionary<TKey,TValue> 인터페이스(예: Dictionary<TKey,TValue>)를 구현하는 클래스입니다. KeyName 클래스를 사용할 경우 사용자 지정 이름을 설정하려면 ValueNameDictionary<TKey,TValue> 속성을 사용합니다.

를 사용하는 DataContractSerializer방법에 대한 자세한 내용은 데이터 계약 사용을 참조하세요.

생성자

CollectionDataContractAttribute()

CollectionDataContractAttribute 클래스의 새 인스턴스를 초기화합니다.

속성

IsItemNameSetExplicitly

ItemName이 명시적으로 설정되었는지를 나타내는 값을 가져옵니다.

IsKeyNameSetExplicitly

KeyName이 명시적으로 설정되었는지를 나타내는 값을 가져옵니다.

IsNameSetExplicitly

Name이 명시적으로 설정되었는지를 나타내는 값을 가져옵니다.

IsNamespaceSetExplicitly

Namespace이 명시적으로 설정되었는지를 나타내는 값을 가져옵니다.

IsReference

개체 참조 데이터를 유지할지 여부를 나타내는 값을 가져오거나 설정합니다.

IsReferenceSetExplicitly

참조가 명시적으로 설정되었는지를 나타내는 값을 가져옵니다.

IsValueNameSetExplicitly

ValueName이 명시적으로 설정되었는지를 나타내는 값을 가져옵니다.

ItemName

컬렉션 요소의 사용자 지정 이름을 가져오거나 설정합니다.

KeyName

사전 키 이름의 사용자 지정 이름을 가져오거나 설정합니다.

Name

컬렉션 형식의 데이터 계약 이름을 가져오거나 설정합니다.

Namespace

데이터 계약의 네임스페이스를 가져오거나 설정합니다.

TypeId

파생 클래스에서 구현된 경우 이 Attribute에 대한 고유 식별자를 가져옵니다.

(다음에서 상속됨 Attribute)
ValueName

사전 값 이름의 사용자 지정 이름을 가져오거나 설정합니다.

메서드

Equals(Object)

이 인스턴스가 지정된 개체와 같은지를 나타내는 값을 반환합니다.

(다음에서 상속됨 Attribute)
GetHashCode()

이 인스턴스의 해시 코드를 반환합니다.

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

현재 인스턴스의 Type을 가져옵니다.

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

파생 클래스에서 재정의된 경우 이 인스턴스 값이 파생 클래스에 대한 기본값인지 여부를 표시합니다.

(다음에서 상속됨 Attribute)
Match(Object)

파생 클래스에서 재정의된 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다.

(다음에서 상속됨 Attribute)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

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

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다.

(다음에서 상속됨 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다.

(다음에서 상속됨 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1).

(다음에서 상속됨 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다.

(다음에서 상속됨 Attribute)

적용 대상

추가 정보