CollectionDataContractAttribute Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir koleksiyon türüne uygulandığında, koleksiyon öğesi öğelerinin özel belirtimini etkinleştirir. Bu öznitelik yalnızca tarafından geçerli, serileştirilebilir koleksiyonlar olarak tanınan DataContractSerializer türlere uygulanabilir.
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
- Devralma
- Öznitelikler
Örnekler
Aşağıdaki örnek, öğesini CollectionDataContractAttribute sınıfından devralan bir sınıfa List<T> uygular. Kod, ve ItemName özelliklerini özel değerlere ayarlarName.
[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
İstemci için kod oluşturmak için ServiceModel Meta Veri Yardımcı Programı Aracı (Svcutil.exe) kullanıldığında, kod aşağıdaki örneğe benzer. sınıfının adının ve değerinin değiştirildiğine ItemNamedikkat edin. Genel değerler kullanılırken, sonuçta elde edilen tür adını oluşturmak için tür parametresi adı kullanılır.
// 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
Açıklamalar
, CollectionDataContractAttribute WCF olmayan sağlayıcılardan gelen verilerle çalışırken birlikte çalışabilirliği kolaylaştırmak ve serileştirilmiş örneklerin tam şeklini denetlemek için tasarlanmıştır. Bu amaçla özelliği, ItemName bir koleksiyon içindeki yinelenen öğelerin adlarını denetlemenizi sağlar. Bu, özellikle sağlayıcı dizi öğesi adı olarak XML öğe türü adını kullanmadığında yararlıdır; örneğin, sağlayıcı XSD tür adı "string" yerine öğe türü adı olarak "String" kullanıyorsa.
CollectionDataContractAttribute ayrıca anahtarlı koleksiyonları işlemek için sözlük türleriyle birlikte kullanılmak üzere tasarlanmıştır. Sözlük türleri, veya arabirimini IDictionary<TKey,TValue> uygulayan IDictionary sınıflardır; örneğin, Dictionary<TKey,TValue>. sınıfını KeyName kullanırken Dictionary<TKey,TValue> özel adlar ayarlamak için ve ValueName özelliklerini kullanın.
kullanma hakkında DataContractSerializerdaha fazla bilgi için bkz. Veri Sözleşmelerini Kullanma.
Oluşturucular
CollectionDataContractAttribute() |
CollectionDataContractAttribute sınıfının yeni bir örneğini başlatır. |
Özellikler
IsItemNameSetExplicitly |
Açıkça ayarlanıp ayarlanmadığını ItemName alır. |
IsKeyNameSetExplicitly |
Açıkça ayarlanıp ayarlanmadığını KeyName alır. |
IsNameSetExplicitly |
Açıkça ayarlanıp ayarlanmadığını Name alır. |
IsNamespaceSetExplicitly |
Açıkça ayarlanıp ayarlanmadığını Namespace alır. |
IsReference |
Nesne başvuru verilerinin korunup korunmayacağını belirten bir değer alır veya ayarlar. |
IsReferenceSetExplicitly |
Başvuru açıkça ayarlanıp ayarlanmadığını alır. |
IsValueNameSetExplicitly |
Açıkça ayarlanıp ayarlanmadığını ValueName alır. |
ItemName |
Koleksiyon öğesi için özel bir ad alır veya ayarlar. |
KeyName |
Sözlük anahtarı adı için özel adı alır veya ayarlar. |
Name |
Koleksiyon türü için veri sözleşmesi adını alır veya ayarlar. |
Namespace |
Veri sözleşmesi için ad alanını alır veya ayarlar. |
TypeId |
Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır. (Devralındığı yer: Attribute) |
ValueName |
Sözlük değeri adı için özel adı alır veya ayarlar. |
Yöntemler
Equals(Object) |
Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değeri döndürür. (Devralındığı yer: Attribute) |
GetHashCode() |
Bu örneğe ilişkin karma kodu döndürür. (Devralındığı yer: Attribute) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
IsDefaultAttribute() |
Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir. (Devralındığı yer: Attribute) |
Match(Object) |
Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür. (Devralındığı yer: Attribute) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |
Belirtik Arabirim Kullanımları
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler. (Devralındığı yer: Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır. (Devralındığı yer: Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1). (Devralındığı yer: Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Bir nesne tarafından sunulan özelliklere ve yöntemlere erişim sağlar. (Devralındığı yer: Attribute) |