Freigeben über


DomainContext-Klasse

Ein DomainContext ist eine zustandsbehaftete clientseitige Darstellung eines Domänendiensts und bietet Zugriff auf die gesamte Funktionalität des Diensts.

Namespace: System.ServiceModel.DomainServices.Client
Assembly: System.ServiceModel.DomainServices.Client (in system.servicemodel.domainservices.client.dll)

Verwendung

'Usage
Dim instance As DomainContext

Syntax

'Declaration
Public MustInherit Class DomainContext
    Implements INotifyPropertyChanged
public abstract class DomainContext : INotifyPropertyChanged
public ref class DomainContext abstract : INotifyPropertyChanged
public abstract class DomainContext implements INotifyPropertyChanged
public abstract class DomainContext implements INotifyPropertyChanged

Beispiel

Im folgenden Beispiel wird gezeigt, wie eine Instanz einer generierten DomainContext-Klasse erstellt und Daten von einer Abfrage geladen werden.

Imports System.ServiceModel.DomainServices.Client
Imports RIAServicesExample.Web

Partial Public Class MainPage
    Inherits UserControl

    Private _customerContext As New CustomerDomainContext

    Public Sub New()
        InitializeComponent()

        Dim loadOp = Me._customerContext.Load(Me._customerContext.GetCustomersQuery())
        CustomerGrid.ItemsSource = loadOp.Entities
    End Sub

End Class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using RIAServicesExample.Web;
using System.ServiceModel.DomainServices.Client;

namespace RIAServicesExample
{
    public partial class MainPage : UserControl
    {
        private CustomerDomainContext _customerContext = new CustomerDomainContext();

        public MainPage()
        {
            InitializeComponent();

            LoadOperation<Customer> loadOp = this._customerContext.Load(this._customerContext.GetCustomersQuery());
            CustomerGrid.ItemsSource = loadOp.Entities;
        }
    }
}

Hinweise

Für jeden Domänendienst im Serverprojekt generiert WCF RIA Services eine Klasse, die von DomainContext abgeleitet ist. Sie verwenden die generierte DomainContext-Klasse, um mit dem Domänendienst zu interagieren. Sie rufen Daten ab, indem Sie die Load-Methode aufrufen und eine der generierten Abfragemethoden als Parameter übergeben. Sie speichern Änderungen in den Daten, indem Sie die SubmitChanges-Methode aufrufen. Sie brechen alle ausstehenden Datenänderungen ab und stellen die Daten im ursprünglichen Zustand wieder her, indem Sie die RejectChanges-Methode aufrufen. Die generierte Klasse enthält Abfragemethoden, die Abfragemethoden im Domänendienst entsprechen. Standardmäßig verwendet RIA Services eine Namenskonvention für den generierten Domänenkontext und dessen Methoden. Ein Domänendienst mit dem Namen CustomerDomainService im Serverprojekt erhält im Clientprojekt z. B. eine Domänenkontextklasse mit dem Namen CustomerDomainContext. Eine Abfragemethode mit dem Namen GetCustomers verfügt über eine entsprechende Methode im Clientprojekt mit dem Namen GetCustomersQuery. Weitere Informationen finden Sie unter Client Code Generation.

Um die generierte Domänenkontextklasse zu suchen, wählen Sie Alle Dateien anzeigen im Silverlight-Projekt aus, und öffnen Sie den Ordner Generated_Code.

Wenn Sie einen Domänenvorgang ausführen, wird der Vorgang asynchron verarbeitet. Um eine Aktion auszuführen, nachdem der Vorgang abgeschlossen wurde, müssen Sie eine Rückrufmethode bereitstellen. Ein Beispiel für das Bereitstellen einer Rückrufmethode finden Sie weiter unten.

Vererbungshierarchie

System.Object
  System.ServiceModel.DomainServices.Client.DomainContext
     System.ServiceModel.DomainServices.Client.ApplicationServices.AuthenticationDomainContextBase

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

DomainContext-Member
System.ServiceModel.DomainServices.Client-Namespace