DomainService-Klasse

Stellt eine Basisklasse für alle DomainService-Implementierungen bereit.

Namespace: System.ServiceModel.DomainServices.Server
Assembly: System.ServiceModel.DomainServices.Server (in system.servicemodel.domainservices.server.dll)

Verwendung

'Usage
Dim instance As DomainService

Syntax

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

Beispiel

Im folgenden Beispiel wird ein Domänendienst veranschaulicht, der einen Vorgang zum Registrieren eines neuen Benutzers verfügbar macht. Die GetUsers-Methode muss eingeschlossen werden, um sicherzustellen, dass die NewUser-Entitätsklasse für das Clientprojekt generiert wird.

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

Hinweise

Domänendienste sind Windows Communication Foundation (WCF)-Dienste, die die Geschäftslogik einer Anwendung kapseln. Ein Domänendienst macht einen Satz verwandter Vorgänge in Form einer Dienstschicht verfügbar. Wenn Sie eine Instanz eines Domänendiensts erstellen, geben Sie die über den Domänendienst zulässigen Datenvorgänge an.

Die DomainService-Klasse ist die Basisklasse für alle Klassen, die als Domänendienste fungieren. Die LinqToEntitiesDomainService-Klasse wird von der DomainService-Klasse abgeleitet und beim Interagieren mit LINQ to Entities-Modellen verwendet.

Eine Domänendienstklasse muss mit dem EnableClientAccessAttribute-Attribut markiert werden, um den Dienst für das Clientprojekt verfügbar zu machen. Wenn Sie im Dialogfeld Neue DomainService-Klasse hinzufügen das Kontrollkästchen Clientzugriff aktivieren aktivieren, wird das EnableClientAccessAttribute-Attribut automatisch auf einen Domänendienst angewendet.

Weitere Informationen finden Sie unter Domain Services.

Vererbungshierarchie

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

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht sichergestellt.

Plattformen

Entwicklungsplattformen

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

Zielplattformen

Change History

Siehe auch

Verweis

DomainService-Member
System.ServiceModel.DomainServices.Server-Namespace