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

线程安全

此类型的任何公共静态(在 Visual Basic 中为 共享)成员都是线程安全的。不保证所有实例成员都是线程安全的。

平台

开发平台

Windows XP Home Edition, Windows XP Professional, Windows Server 2003 、Windows Server 2008 和 Windows 2000

目标平台

Change History

另请参见

参考

DomainService 成员
System.ServiceModel.DomainServices.Server 命名空间