Classe DomainService

Fornisce una classe base per tutte le implementazioni di DomainService.

Spazio dei nomi: System.ServiceModel.DomainServices.Server
Assembly: System.ServiceModel.DomainServices.Server (in system.servicemodel.domainservices.server.dll)

Utilizzo

'Utilizzo
Dim instance As DomainService

Sintassi

'Dichiarazione
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

Esempio

Nell'esempio seguente viene illustrato un servizio del dominio che espone un'operazione per la registrazione di un nuovo utente. Il metodo GetUsers deve essere incluso per garantire che la classe dell'entità NewUser venga generata per il progetto client.

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();
        }
    }  
}

Osservazioni

I servizi del dominio sono servizi Windows Communication Foundation (WCF) che incapsulano la logica di business di un'applicazione. Un servizio del dominio espone un set di operazioni correlate sotto forma di livello di servizio. Quando si crea un'istanza di un servizio del dominio, si specificano le operazioni sui dati consentite nel servizio del dominio.

La classe DomainService è la classe base per tutte le classi che fungono da servizi del dominio. La classe LinqToEntitiesDomainService deriva dalla classe DomainService e viene utilizzata nell'interazione con modelli LINQ to Entities.

Una classe di servizi del dominio deve essere contrassegnata con l'attributo EnableClientAccessAttribute per rendere il servizio disponibile per il progetto client. L'attributo EnableClientAccessAttribute viene applicato automaticamente a un servizio del dominio quando si seleziona la casella di controllo Abilita l'accesso client nella finestra di dialogo Aggiungi una nuova classe DomainService.

Per ulteriori informazioni, vedere Domain Services.

Gerarchia di ereditarietà

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

Sicurezza dei thread

Tutti i membri statici pubblici (Shared in Visual Basic) di questo tipo sono thread-safe. Non è invece garantita la sicurezza dei membri dell'istanza.

Piattaforme

Piattaforme di sviluppo

Windows XP Home Edition, Windows XP Professional, Windows Server 2003 , Windows Server 2008 e Windows 2000

Piattaforme di destinazione

Change History

Vedere anche

Riferimento

Membri DomainService
Spazio dei nomi System.ServiceModel.DomainServices.Server