Compartir a través de


Clase DomainService

Proporciona la clase base para todas las implementaciones de DomainService.

Espacio de nombres: System.ServiceModel.DomainServices.Server
Ensamblado: System.ServiceModel.DomainServices.Server (en system.servicemodel.domainservices.server.dll)

Uso

'Uso
Dim instance As DomainService

Sintaxis

'Declaración
Public MustInherit Class DomainService
    Implements IDisposable
public abstract class DomainService : IDisposable
public ref class DomainService abstract : IDisposable
public abstract class DomainService implements IDisposable
public abstract class DomainService implements IDisposable

Ejemplo

El ejemplo siguiente muestra un servicio de dominio que expone una operación para registrar un nuevo usuario. Se debe incluir el método GetUsers para asegurarse de que la clase de entidad NewUser se genera para el proyecto de cliente.

Option Compare Binary
Option Infer On
Option Strict On
Option Explicit On

Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.ComponentModel.DataAnnotations
Imports System.Linq
Imports System.ServiceModel.DomainServices.Hosting
Imports System.ServiceModel.DomainServices.Server
Imports System.Web.Profile

<EnableClientAccess()>  _
Public Class RegistrationDomainService
    Inherits DomainService

    Public Sub AddUser(ByVal user As NewUser)
        Dim createStatus As MembershipCreateStatus
        Membership.CreateUser(user.UserName, user.Password, user.Email, user.SecurityQuestion, user.SecurityAnswer, True, Nothing, createStatus)

        If (createStatus <> MembershipCreateStatus.Success) Then
            Throw New DomainException(createStatus.ToString())
        End If

        Dim profile = ProfileBase.Create(user.UserName, True)
        profile.SetPropertyValue("DefaultRows", user.RecordsToShow)
        profile.Save()
    End Sub

    Public Function GetUsers() As IEnumerable(Of NewUser)
        Throw New NotSupportedException()
    End Function
End Class
namespace ExampleNavigationApplication.Web
{
    using System;
    using System.Collections.Generic;
    using System.ServiceModel.DomainServices.Hosting;
    using System.ServiceModel.DomainServices.Server;
    using System.Web.Security;
    using System.Web.Profile;

    
    [EnableClientAccess()]
    public class RegistrationDomainService : DomainService
    {
        public void AddUser(NewUser user)
        {
            MembershipCreateStatus createStatus;
            Membership.CreateUser(user.UserName, user.Password, user.Email, user.SecurityQuestion, user.SecurityAnswer, true, null, out createStatus);

            if (createStatus != MembershipCreateStatus.Success)
            {
                throw new DomainException(createStatus.ToString());
            }

            ProfileBase profile = ProfileBase.Create(user.UserName, true);
            profile.SetPropertyValue("DefaultRows", user.RecordsToShow);
            profile.Save();
        }

        public IEnumerable<NewUser> GetUsers()
        {
            throw new NotSupportedException();
        }
    }  
}

Notas

Los servicios de dominio son servicios Windows Communication Foundation (WCF) que encapsulan la lógica de negocios de una aplicación. Un servicio de dominio expone un conjunto de operaciones relacionadas en el formulario de una capa de servicio. Al crear una instancia de un servicio de dominio, debe especificar las operaciones de datos permitidas a través del servicio de dominio.

La clase DomainService es la clase base para todas las clases que actúan como servicios de dominio. La clase LinqToEntitiesDomainService se deriva de la clase DomainService y se utiliza cuando interactúa con modelos LINQ to Entities.

Una clase de servicio de dominio se debe marcar con el atributo EnableClientAccessAttribute para que el servicio esté disponible para el proyecto de cliente. Cuando se activa la casilla Habilitar acceso de cliente del cuadro de diálogo Agregar nueva clase de Servicios de dominio, el atributo EnableClientAccessAttribute se aplica automáticamente al servicio de dominio.

Para obtener más información, vea Domain Services.

Jerarquía de herencia

System.Object
  System.ServiceModel.DomainServices.Server.DomainService
     Microsoft.ServiceModel.DomainServices.LinqToSql.LinqToSqlDomainService
     System.ServiceModel.DomainServices.EntityFramework.LinqToEntitiesDomainService
     System.ServiceModel.DomainServices.Server.ApplicationServices.AuthenticationBase

Seguridad para subprocesos

Cualquier miembro estático público (Compartidos en Visual Basic) de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Plataformas

Plataformas de desarrollo

Microsoft Windows XP Home Edition, Windows XP Professional, Windows Server 2003 , Windows Server 2008 y Windows 2000

Plataformas de destino

Change History

Vea también

Referencia

Miembros DomainService
Espacio de nombres System.ServiceModel.DomainServices.Server