ServiceKnownTypeAttribute ServiceKnownTypeAttribute ServiceKnownTypeAttribute ServiceKnownTypeAttribute Class

Définition

Spécifie les types connus utilisés par un service lors de la sérialisation ou de la désérialisation.Specifies known types to be used by a service when serializing or deserializing.

public ref class ServiceKnownTypeAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Interface | System.AttributeTargets.Method, AllowMultiple=true, Inherited=true)]
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Interface, AllowMultiple=true, Inherited=true)]
public sealed class ServiceKnownTypeAttribute : Attribute
type ServiceKnownTypeAttribute = class
    inherit Attribute
Public NotInheritable Class ServiceKnownTypeAttribute
Inherits Attribute
Héritage
ServiceKnownTypeAttributeServiceKnownTypeAttributeServiceKnownTypeAttributeServiceKnownTypeAttribute
Attributs

Exemples

L’exemple suivant applique l’attribut ServiceKnownTypeAttribute à une interface où l’attribut spécifie un nom de méthode et un type déclarant.The following example applies the ServiceKnownTypeAttribute attribute to an interface where the attribute specifies a method name and a declaring type.

// Define a service contract and apply the ServiceKnownTypeAttribute
// to specify types to include when generating client code. 
// The types must have the DataContractAttribute and DataMemberAttribute
// applied to be serialized and deserialized. The attribute specifies the 
// name of a method (GetKnownTypes) in a class (Helper) defined below.
[ServiceKnownType("GetKnownTypes", typeof(Helper))]
[ServiceContract()]
public interface ICatalog
{
    // Any object type can be inserted into a Hashtable. The 
    // ServiceKnownTypeAttribute allows you to include those types
    // with the client code.
    [OperationContract]
    Hashtable GetItems();
}

// This class has the method named GetKnownTypes that returns a generic IEnumerable.
static class Helper
{
    public static IEnumerable<Type> GetKnownTypes(ICustomAttributeProvider provider)
    {
        System.Collections.Generic.List<System.Type> knownTypes =
            new System.Collections.Generic.List<System.Type>();
        // Add any types to include here.
        knownTypes.Add(typeof(Widget));
        knownTypes.Add(typeof(Machine));
        return knownTypes;
    }
}

[DataContract()]
public class Widget
{
    [DataMember]
    public string Id;
    [DataMember]
    public string Catalog;
}

[DataContract()]
public class Machine : Widget
{
    [DataMember]
    public string Maker;
}

' Define a service contract and apply the ServiceKnownTypeAttribute
' to specify types to include when generating client code. 
' The types must have the DataContractAttribute and DataMemberAttribute
' applied to be serialized and deserialized. The attribute specifies the 
' name of a method (GetKnownTypes) in a class (Helper) defined below.
<ServiceKnownType("GetKnownTypes", GetType(Helper)), ServiceContract()>  _
Public Interface ICalculator
    ' Any object type can be inserted into a Hashtable. The 
    ' ServiceKnownTypeAttribute allows you to include those types
    ' with the client code.
    <OperationContract()>  _
    Function GetItems() As Hashtable 
End Interface 

' This class has the method named GetKnownTypes that returns a generic IEnumerable.
Friend Class Helper
    Public Shared  Function GetKnownTypes(provider As ICustomAttributeProvider) _
     As IEnumerable(of Type) 
        Dim knownTypes As List(Of Type) = New List(Of Type)
        ' Add any types to include here.
        knownTypes.Add(GetType(Widget))
        knownTypes.Add(GetType(Machine))
        Return knownTypes
    End Function 
End Class 

<DataContract()>  _
Public Class Widget
    <DataMember()>  _
    Public Id As String
    <DataMember()>  _
    Public Catalog As String
End Class 

<DataContract()>  _
Public Class Machine
    Inherits Widget
    <DataMember()>  _
    Public Maker As String
End Class 

Vous pouvez aussi appliquer l'attribut à l'interface spécifiant le type connu à inclure.Alternatively, apply the attribute to the interface specifying the known type to include.

// Apply the ServiceKnownTypeAttribute to the 
// interface specifying the type to include. Apply 
// the attribute more than once if needed.
[ServiceKnownType(typeof(Widget))]
[ServiceKnownType(typeof(Machine))]
[ServiceContract()]
public interface ICatalog2
{
    // Any object type can be inserted into a Hashtable. The 
    // ServiceKnownTypeAttribute allows you to include those types
    // with the client code.
    [OperationContract]
    Hashtable GetItems();
}
' Apply the ServiceKnownTypeAttribute to the 
' interface specifying the type to include. Apply the attribute
' more than once, if needed.
<ServiceKnownType(GetType(Widget)), ServiceKnownType(GetType(Machine)), _
 ServiceContract()>  _
Public Interface ICalculator2
    ' Any object type can be inserted into a Hashtable. The 
    ' ServiceKnownTypeAttribute allows you to include those types
    ' with the client code.
    <OperationContract()>  _
    Function GetItems() As Hashtable 
End Interface 

Remarques

Le ServiceKnownTypeAttribute est destinée à utiliser lors de la création de contrats de service Windows Communication Foundation (WCF) (les interfaces qui définissent le service et ses méthodes).The ServiceKnownTypeAttribute is intended for use when creating Windows Communication Foundation (WCF) service contracts (interfaces that define the service and its methods). Le types connus sont des types qui peuvent être présents dans un graphique d’objet lors de la sérialisation ou la désérialisation se produit.The known types are types that may be present in an object graph when serialization or deserialization occurs. Pour plus d’informations sur les types connus, consultez Data Contract Known Types.For more information about known types, see Data Contract Known Types.

Pour utiliser la propriété MethodName, créez une classe qui contient une méthode (ou des méthodes) qui retourne un tableau de types (chacun étant un type connu).To use the MethodName property, create a class that contains a method (or methods) that returns an array of types (each being a known type). Lorsque vous appliquez l'attribut, affectez le methodName au nom d'une méthode que retourne la liste de types et affectez le declaringType au type qui contient la méthode.When applying the attribute, set the methodName to the name of a method that returns the list of types and set the declaringType to the type that contains the method. La méthode doit retourner un type qui implémente l'interface IEnumerable<T>.The method must return a type that implements the IEnumerable<T> interface. La méthode doit également inclure un paramètre de type ICustomAttributeProvider.The method must also include a parameter of type ICustomAttributeProvider.

Vous pouvez également appliquer plusieurs fois l'attribut à une interface, une classe ou une méthode, en spécifiant à chaque fois un nouveau type connu.You can also apply the attribute several times to an interface, class, or method, each time specifying a new known type.

Notes

Vous pouvez utiliser le mot ServiceKnownType dans votre Microsoft Visual Basic ou votre code C# au lieu de l'ServiceKnownTypeAttribute plus long.You can use the word ServiceKnownType in your Microsoft Visual Basic or C# code instead of the longer ServiceKnownTypeAttribute.

Constructeurs

ServiceKnownTypeAttribute(String) ServiceKnownTypeAttribute(String) ServiceKnownTypeAttribute(String) ServiceKnownTypeAttribute(String)

Initialise une nouvelle instance de la classe ServiceKnownTypeAttribute et spécifie le nom d'une méthode qui retourne les types connus.Initializes a new instance of the ServiceKnownTypeAttribute class and specifies the name of a method that returns the known types.

ServiceKnownTypeAttribute(String, Type) ServiceKnownTypeAttribute(String, Type) ServiceKnownTypeAttribute(String, Type) ServiceKnownTypeAttribute(String, Type)

Initialise une nouvelle instance de la classe ServiceKnownTypeAttribute avec le nom d'une méthode qui retourne les types connus et le type qui contient la méthode (ou les méthodes) qui retourne les types connus.Initializes a new instance of the ServiceKnownTypeAttribute class with the name of a method that returns the known types and the type that contains the method (or methods) that returns the known types.

ServiceKnownTypeAttribute(Type) ServiceKnownTypeAttribute(Type) ServiceKnownTypeAttribute(Type) ServiceKnownTypeAttribute(Type)

Initialise une nouvelle instance de la classe ServiceKnownTypeAttribute à l'aide du type connu spécifié.Initializes a new instance of the ServiceKnownTypeAttribute class with the specified known type.

Propriétés

DeclaringType DeclaringType DeclaringType DeclaringType

Obtient le type qui contient les méthodes qui retournent les types connus.Gets the type that contains the methods that return the known types.

MethodName MethodName MethodName MethodName

Obtient le nom d'une méthode qui retourne la collection de types connus.Gets the name of a method that returns the collection of known types.

Type Type Type Type

Type connu qui peut être inclus dans un graphique d'objets.The known type that can be included in an object graph.

TypeId TypeId TypeId TypeId

Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

Méthodes

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Retourne une valeur qui indique si cette instance est égale à un objet spécifié.Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Retourne le code de hachage de cette instance.Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut pour la classe dérivée.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) Match(Object)

En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Inherited from Object)

Implémentations d’interfaces explicites

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

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type pour un objet, qui peuvent être utilisées pour obtenir les informations de type d'une interface.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fournit l'accès aux propriétés et aux méthodes exposées par un objet.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

S’applique à

Voir aussi