AspNetCompatibilityRequirementsAttribute Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Aplicado a um serviço WCF (Windows Communication Foundation) para indicar se esse serviço pode ser executado no código de compatibilidade ASP.NET.
public ref class AspNetCompatibilityRequirementsAttribute sealed : Attribute, System::ServiceModel::Description::IServiceBehavior
[System.AttributeUsage(System.AttributeTargets.Class)]
public sealed class AspNetCompatibilityRequirementsAttribute : Attribute, System.ServiceModel.Description.IServiceBehavior
[<System.AttributeUsage(System.AttributeTargets.Class)>]
type AspNetCompatibilityRequirementsAttribute = class
inherit Attribute
interface IServiceBehavior
Public NotInheritable Class AspNetCompatibilityRequirementsAttribute
Inherits Attribute
Implements IServiceBehavior
- Herança
- Atributos
- Implementações
Exemplos
Os desenvolvedores de serviços podem garantir que seu serviço seja executado apenas no modo de compatibilidade ASP.NET definindo a RequirementsMode propriedade como AspNetCompatibilityRequirementsAttribute Required mostrada no exemplo a seguir
[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
public interface ICalculatorSession
{
[OperationContract]
void Clear();
[OperationContract]
void AddTo(double n);
[OperationContract]
void SubtractFrom(double n);
[OperationContract]
void MultiplyBy(double n);
[OperationContract]
void DivideBy(double n);
[OperationContract]
double Equals();
}
<ServiceContract(Namespace:="http://Microsoft.ServiceModel.Samples")> _
Public Interface ICalculatorSession
<OperationContract()> _
Sub Clear()
<OperationContract()> _
Sub AddTo(ByVal n As Double)
<OperationContract()> _
Sub SubtractFrom(ByVal n As Double)
<OperationContract()> _
Sub MultiplyBy(ByVal n As Double)
<OperationContract()> _
Sub DivideBy(ByVal n As Double)
<OperationContract()> _
Function Equal() As Double
End Interface
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class CalculatorService : ICalculatorSession
{
double result
{ // Store result in AspNet session.
get
{
if (HttpContext.Current.Session["Result"] != null)
return (double)HttpContext.Current.Session["Result"];
return 0.0D;
}
set
{
HttpContext.Current.Session["Result"] = value;
}
}
public void Clear()
{
}
public void AddTo(double n)
{
result += n;
}
public void SubtractFrom(double n)
{
result -= n;
}
public void MultiplyBy(double n)
{
result *= n;
}
public void DivideBy(double n)
{
result /= n;
}
public double Equals()
{
return result;
}
}
<AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Required)> _
Public Class CalculatorService
Implements ICalculatorSession
Property Result() As Double
' Store result in AspNet Session.
Get
If (HttpContext.Current.Session("Result") Is Nothing) Then
Return 0D
End If
Return HttpContext.Current.Session("Result")
End Get
Set(ByVal value As Double)
HttpContext.Current.Session("Result") = value
End Set
End Property
Public Sub Clear() _
Implements ICalculatorSession.Clear
Result = 0D
End Sub
Public Sub AddTo(ByVal n As Double) _
Implements ICalculatorSession.AddTo
Result += n
End Sub
Public Sub SubtractFrom(ByVal n As Double) _
Implements ICalculatorSession.SubtractFrom
Result -= n
End Sub
Public Sub MultiplyBy(ByVal n As Double) _
Implements ICalculatorSession.MultiplyBy
Result *= n
End Sub
Public Sub DivideBy(ByVal n As Double) _
Implements ICalculatorSession.DivideBy
Result /= n
End Sub
Public Function Equal() As Double _
Implements ICalculatorSession.Equal
Return Result
End Function
End Class
Comentários
Quando aplicado a uma classe de implementação de serviço, esse atributo indica se esse serviço requer ou dá suporte ASP.NET modo de compatibilidade a ser habilitado para o domínio do aplicativo de hospedagem (AppDomain).
Os serviços WCF de hospedagem do AppDomains podem ser executados em dois modos de hospedagem diferentes:
Modo de Transportes Mistos (Padrão): nesse modo, os serviços do WCF não participam do pipeline HTTP ASP.NET. Isso garante que um serviço WCF se comporte consistentemente, independentemente do ambiente de hospedagem e do transporte.
ASP.NET Modo de Compatibilidade: nesse modo, os serviços do WCF participam do pipeline HTTP ASP.NET de maneira semelhante aos serviços ASMX. ASP.NET recursos como Autorização de Arquivo, UrlAuthorization e Estado da Sessão HTTP são aplicáveis aos serviços do WCF em execução nesse modo.
O modo de hospedagem é controlado pelo sinalizador aspNetCompatibilityEnabled
de configuração no nível do aplicativo.
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
</system.serviceModel>
Esse sinalizador é false
por padrão e, portanto, os serviços WCF são executados no Modo de Transportes Mistos, a menos que você opte explicitamente pelo modo de compatibilidade ASP.NET.
Para obter mais informações sobre ASP.NET modo de compatibilidade, consulte <serviceHostingEnvironment>.
Use a RequirementsMode propriedade para fazer isso. Em runtime, os aplicativos podem detectar se ASP.NET modo de compatibilidade está habilitado verificando o valor da propriedade AspNetCompatibilityEnabledestática.
Construtores
AspNetCompatibilityRequirementsAttribute() |
Inicializa uma nova instância da classe AspNetCompatibilityRequirementsAttribute. |
Propriedades
RequirementsMode |
Obtém ou define o nível de compatibilidade ASP.NET exigido pelo serviço. |
TypeId |
Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute. (Herdado de Attribute) |
Métodos
Equals(Object) |
Retorna um valor que indica se essa instância é igual a um objeto especificado. (Herdado de Attribute) |
GetHashCode() |
Retorna o código hash para a instância. (Herdado de Attribute) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
IsDefaultAttribute() |
Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada. (Herdado de Attribute) |
Match(Object) |
Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado. (Herdado de Attribute) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Implantações explícitas de interface
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição. (Herdado de Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface. (Herdado de Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1). (Herdado de Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fornece acesso a propriedades e métodos expostos por um objeto. (Herdado de Attribute) |
IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection) |
Adiciona dados personalizados que os elementos de associação podem acessar para dar suporte à implementação do contrato. |
IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase) |
Verifica se o tipo de hospedagem é consistente com os requisitos de compatibilidade ASP.NET. |
IServiceBehavior.Validate(ServiceDescription, ServiceHostBase) |
Valida o comportamento do serviço. |