Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. |
Traducción
Original
|
ServiceDescription (Clase)
Representa una descripción completa en memoria del servicio, en la que se incluyen todos los extremos del servicio y especificaciones de sus respectivas direcciones, enlaces, contratos y comportamientos.
Ensamblado: System.ServiceModel (en System.ServiceModel.dll)
El tipo ServiceDescription expone los siguientes miembros.
| Nombre | Descripción | |
|---|---|---|
|
ServiceDescription() | Inicializa una nueva instancia de la clase ServiceDescription. |
|
ServiceDescription(IEnumerable<ServiceEndpoint>) | Inicializa una instancia nueva de la clase ServiceDescription para una enumeración especificada de extremos del servicio. |
| Nombre | Descripción | |
|---|---|---|
|
Behaviors | Obtiene los comportamientos asociados al servicio. |
|
ConfigurationName | Obtiene o establece el nombre del elemento de configuración <service>. |
|
Endpoints | Recibe la colección de extremos de la descripción del servicio. |
|
Name | Obtiene o establece el nombre del servicio. |
|
Namespace | Obtiene o establece el espacio de nombres para el servicio. |
|
ServiceType | Obtiene el tipo de servicio. |
| Nombre | Descripción | |
|---|---|---|
|
Equals(Object) | Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object). |
|
Finalize | Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object). |
|
GetHashCode | Actúa como función hash para un tipo concreto. (Se hereda de Object). |
|
GetService(Object) | Devuelve una descripción de servicio inicializada con un objeto de servicio concreto. |
|
GetService(Type) | Devuelve una descripción de servicio inicializada con un tipo de servicio concreto. |
|
GetType | Obtiene el objeto Type de la instancia actual. (Se hereda de Object). |
|
MemberwiseClone | Crea una copia superficial del objeto Object actual. (Se hereda de Object). |
|
ToString | Devuelve una cadena que representa el objeto actual. (Se hereda de Object). |
La información contenida en la descripción ServiceDescription es utilizada por el sistema para generar los componentes en tiempo de ejecución del servicio.
Utilice este método para agregar los comportamientos personalizados y extender ServiceHost. Mediante programación, debe agregar Add(T) el comportamiento de servicio personalizado a Behaviors antes de llamar al método Open en el objeto ServiceHost.
GetService(Object) y los métodos GetService(Type) están disponibles para reflejar comportamientos mediante el modelo de programación al reemplazar ServiceHostBase por su propio mecanismo de alojamiento.
Exporte los metadatos sobre un extremo de servicio pasando ServiceEndpoint como un parámetro a ExportEndpoint(ServiceEndpoint). Después de llamar a este método, o a uno de los otros métodos de exportación proporcionado por WsdlExporter, utilice la propiedad GeneratedWsdlDocuments para devolver la colección de los objetos ServiceDescription.
En el siguiente ejemplo se muestran distintas maneras de crear instancias de un objeto ServiceDescription.
Uri baseAddress = new Uri("http://localhost:8001/Simple");
ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress);
serviceHost.AddServiceEndpoint(
typeof(ICalculator),
new WSHttpBinding(),
"CalculatorServiceObject");
// Enable Mex
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
serviceHost.Description.Behaviors.Add(smb);
serviceHost.Open();
// Use Default constructor
ServiceDescription sd = new ServiceDescription();
// Create ServiceDescription from a collection of service endpoints
List<ServiceEndpoint> endpoints = new List<ServiceEndpoint>();
ContractDescription conDescr = new ContractDescription("ICalculator");
EndpointAddress endpointAddress = new EndpointAddress("http://localhost:8001/Basic");
ServiceEndpoint ep = new ServiceEndpoint(conDescr, new BasicHttpBinding(), endpointAddress);
endpoints.Add(ep);
ServiceDescription sd2 = new ServiceDescription(endpoints);
//// Iterate through the list of behaviors in the ServiceDescription
ServiceDescription svcDesc = serviceHost.Description;
KeyedByTypeCollection<IServiceBehavior> sbCol = svcDesc.Behaviors;
foreach (IServiceBehavior behavior in sbCol)
{
Console.WriteLine("Behavior: {0}", behavior.ToString());
}
// svcDesc is a ServiceDescription.
svcDesc = serviceHost.Description;
string configName = svcDesc.ConfigurationName;
Console.WriteLine("Configuration name: {0}", configName);
// Iterate through the endpoints contained in the ServiceDescription
ServiceEndpointCollection sec = svcDesc.Endpoints;
foreach (ServiceEndpoint se in sec)
{
Console.WriteLine("Endpoint:");
Console.WriteLine("\tAddress: {0}", se.Address.ToString());
Console.WriteLine("\tBinding: {0}", se.Binding.ToString());
Console.WriteLine("\tContract: {0}", se.Contract.ToString());
KeyedByTypeCollection<IEndpointBehavior> behaviors = se.Behaviors;
foreach (IEndpointBehavior behavior in behaviors)
{
Console.WriteLine("Behavior: {0}", behavior.ToString());
}
}
string name = svcDesc.Name;
Console.WriteLine("Service Description name: {0}", name);
string namespc = svcDesc.Namespace;
Console.WriteLine("Service Description namespace: {0}", namespc);
Type serviceType = svcDesc.ServiceType;
Console.WriteLine("Service Type: {0}", serviceType.ToString());
// Instantiate a service description specifying a service object
// Note: Endpoints collection and other properties will be null since
// we have not specified them
CalculatorService svcObj = new CalculatorService();
ServiceDescription sd3 = ServiceDescription.GetService(svcObj);
String serviceName = sd3.Name;
Console.WriteLine("Service name: {0}", serviceName);
Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2
.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.