Comparteix a través de


ServiceKnownTypeAttribute Constructores

Definición

Inicializa una nueva instancia de la clase ServiceKnownTypeAttribute.

Sobrecargas

ServiceKnownTypeAttribute(String)

Inicializa una nueva instancia de la clase ServiceKnownTypeAttribute y especifica el nombre de un método que devuelve los tipos conocidos.

ServiceKnownTypeAttribute(Type)

Inicializa una nueva instancia de la clase ServiceKnownTypeAttribute con el tipo conocido especificado.

ServiceKnownTypeAttribute(String, Type)

Inicializa una nueva instancia de la clase ServiceKnownTypeAttribute con el nombre de un método que devuelve los tipos conocidos y el tipo que contiene el método (o métodos) que devuelve los tipos conocidos.

ServiceKnownTypeAttribute(String)

Inicializa una nueva instancia de la clase ServiceKnownTypeAttribute y especifica el nombre de un método que devuelve los tipos conocidos.

public:
 ServiceKnownTypeAttribute(System::String ^ methodName);
public ServiceKnownTypeAttribute (string methodName);
new System.ServiceModel.ServiceKnownTypeAttribute : string -> System.ServiceModel.ServiceKnownTypeAttribute
Public Sub New (methodName As String)

Parámetros

methodName
String

El nombre de un método que devuelve los tipos conocidos.

Comentarios

Use este constructor al aplicar a ServiceKnownTypeAttribute una clase que contiene métodos que devuelven tipos conocidos.

Consulte también

Se aplica a

ServiceKnownTypeAttribute(Type)

Inicializa una nueva instancia de la clase ServiceKnownTypeAttribute con el tipo conocido especificado.

public:
 ServiceKnownTypeAttribute(Type ^ type);
public ServiceKnownTypeAttribute (Type type);
new System.ServiceModel.ServiceKnownTypeAttribute : Type -> System.ServiceModel.ServiceKnownTypeAttribute
Public Sub New (type As Type)

Parámetros

type
Type

Especifica un tipo conocido que se puede usar en un parámetro o el valor devuelto definido por el servicio.

Ejemplos

En el ejemplo siguiente se aplica el ServiceKnownTypeAttribute atributo a una interfaz donde el atributo especifica el tipo que se va a incluir.

// 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

Comentarios

ServiceKnownTypeAttribute Se puede aplicar varias veces a un método, con cada aplicación que asigne un nombre a un tipo conocido diferente que pueda estar presente en el gráfico de objetos devuelto por el método .

Se aplica a

ServiceKnownTypeAttribute(String, Type)

Inicializa una nueva instancia de la clase ServiceKnownTypeAttribute con el nombre de un método que devuelve los tipos conocidos y el tipo que contiene el método (o métodos) que devuelve los tipos conocidos.

public:
 ServiceKnownTypeAttribute(System::String ^ methodName, Type ^ declaringType);
public ServiceKnownTypeAttribute (string methodName, Type declaringType);
new System.ServiceModel.ServiceKnownTypeAttribute : string * Type -> System.ServiceModel.ServiceKnownTypeAttribute
Public Sub New (methodName As String, declaringType As Type)

Parámetros

methodName
String

El nombre de un método que devuelve los tipos conocidos.

declaringType
Type

El tipo que puede utilizar los tipos conocidos en su gráfico de objetos.

Ejemplos

En el ejemplo siguiente se aplica el ServiceKnownTypeAttribute atributo a una interfaz donde el atributo especifica un nombre de método y un tipo declarativo.

// 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

Consulte también

Se aplica a