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