Partager via


Classe DomainService

Fournit une classe de base pour toutes les implémentations de DomainService.

Espace de noms: System.ServiceModel.DomainServices.Server
Assembly : System.ServiceModel.DomainServices.Server (dans system.servicemodel.domainservices.server.dll)

Utilisation

'Utilisation
Dim instance As DomainService

Syntaxe

'Déclaration
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

Exemple

L'exemple suivant présente un service de domaine qui expose une opération pour l'inscription d'un nouvel utilisateur. La méthode GetUsers doit être incluse pour garantir que la classe d'entité NewUser est générée pour le projet 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();
        }
    }  
}

Notes

Les services de domaine sont des services Windows Communication Foundation (WCF) qui encapsulent la logique métier d'une application. Un service de domaine expose un ensemble d'opérations connexes sous la forme d'une couche de service. Lorsque vous créez une instance d'un service de domaine, vous spécifiez les opérations de données qui sont autorisées via le service de domaine.

La classe DomainService est la classe de base pour toutes les classes qui servent de services de domaine. La classe LinqToEntitiesDomainService dérive de la classe DomainService et est utilisée lors de l'interaction avec des modèles LINQ to Entities.

Une classe de service de domaine doit être marquée avec l'attribut EnableClientAccessAttribute pour rendre le service disponible pour le projet client. L'attribut EnableClientAccessAttribute est appliqué automatiquement à un service de domaine lorsque vous activez la case à cocher Activer l'accès client dans la boîte de dialogue Ajouter une nouvelle classe DomainService.

Pour plus d'informations, consultez Domain Services.

Hiérarchie d'héritage

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

Sécurité des threads

Tous les membres publics statiques (Partagés dans Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Plateformes

Plateformes de développement

Windows XP Édition familiale, Windows XP Professionnel, Windows Server 2003 , Windows Server 2008 et Windows 2000

Plateformes cibles

Change History

Voir aussi

Référence

Membres DomainService
Espace de noms System.ServiceModel.DomainServices.Server