次の方法で共有


DomainService クラス

すべての DomainService の実装の基本クラスを提供します。

名前空間: System.ServiceModel.DomainServices.Server
アセンブリ: System.ServiceModel.DomainServices.Server (system.servicemodel.domainservices.server.dll 内)

使用方法

'使用
Dim instance As DomainService

構文

'宣言
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

次の例は、新規ユーザーを登録する操作を公開するドメイン サービスを示します。 GetUsers メソッドは、クライアント プロジェクトの NewUser エンティティ クラスの生成を保証するため、含まれていなければなりません。

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

解説

ドメイン サービスは、アプリケーションのビジネス ロジックをカプセル化した Windows Communication Foundation (WCF) サービスです。 ドメイン サービスは、関連する操作セットをサービス レイヤー形式で公開します。 ドメイン サービスのインスタンスが作成されたら、ドメイン サービスを通じて許可されるデータ操作を指定します。

DomainService クラスは、ドメイン サービスとして機能するすべてのクラスの基本クラスです。 LinqToEntitiesDomainService クラスは、DomainService クラスから派生し、LINQ to Entities モデルと対話する場合に使用されます。

ドメイン サービス クラスは、サービスをクライアント プロジェクトで使用できるようにするため、EnableClientAccessAttribute 属性でマークされなければなりません。 EnableClientAccessAttribute 属性は、[新しいドメイン サービス クラスを追加] ダイアログ ボックスの [クライアント アクセスの有効化] チェック ボックスをオンにすると、ドメイン サービスに自動的に適用されます。

詳細については、「Domain Services」を参照してください。

継承階層

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

スレッド セーフ

この型の public static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

プラットフォーム

開発プラットフォーム

Windows XP Home Edition, Windows XP Professional, Windows Server 2003 、Windows Server 2008、および Windows 2000

ターゲット プラットフォーム

Change History

参照

リファレンス

DomainService のメンバー
System.ServiceModel.DomainServices.Server 名前空間