AspNetCompatibilityRequirementsAttribute Klas

Definitie

Wordt toegepast op een WCF-service (Windows Communication Foundation) om aan te geven of die service kan worden uitgevoerd in ASP.NET compatibiliteitscode.

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
Overname
AspNetCompatibilityRequirementsAttribute
Kenmerken
Implementeringen

Voorbeelden

Serviceontwikkelaars kunnen ervoor zorgen dat hun service alleen wordt uitgevoerd in ASP.NET compatibiliteitsmodus door de eigenschap RequirementsMode op de AspNetCompatibilityRequirementsAttribute in te stellen op Required, zoals wordt weergegeven in het volgende voorbeeld

[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

Opmerkingen

Wanneer dit kenmerk wordt toegepast op een service-implementatieklasse, geeft dit kenmerk aan of deze service vereist of ondersteunt ASP.NET compatibiliteitsmodus moet worden ingeschakeld voor het hosttoepassingsdomein (AppDomain).

AppDomains die WCF-services hosten, kunnen worden uitgevoerd in twee verschillende hostingmodi:

  • Modus Gemengde transporten (standaard): In deze modus nemen WCF-services niet deel aan de ASP.NET HTTP-pijplijn. Dit garandeert dat een WCF-service zich consistent gedraagt, onafhankelijk van de hostingomgeving en het transport.

  • ASP.NET compatibiliteitsmodus: In deze modus nemen WCF-services deel aan de ASP.NET HTTP-pijplijn op een manier die vergelijkbaar is met ASMX-services. ASP.NET functies zoals bestandsautorisatie, UrlAuthorization en HTTP-sessiestatus zijn van toepassing op WCF-services die in deze modus worden uitgevoerd.

De hostingmodus wordt beheerd door de configuratievlag aspNetCompatibilityEnabledop toepassingsniveau.

<system.serviceModel>

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

</system.serviceModel>

Deze vlag is standaard false en dus worden WCF-services uitgevoerd in de modus Gemengde transporten, tenzij u expliciet kiest voor de ASP.NET compatibiliteitsmodus.

Zie <serviceHostingEnvironment> voor meer informatie over ASP.NET compatibiliteitsmodus.

Gebruik de RequirementsMode eigenschap om dit te doen. Tijdens runtime kunnen toepassingen detecteren of ASP.NET compatibiliteitsmodus is ingeschakeld door de waarde van de statische eigenschap AspNetCompatibilityEnabled te controleren.

Constructors

Name Description
AspNetCompatibilityRequirementsAttribute()

Initialiseert een nieuw exemplaar van de AspNetCompatibilityRequirementsAttribute klasse.

Eigenschappen

Name Description
RequirementsMode

Hiermee haalt u het niveau van ASP.NET compatibiliteit op dat door de service is vereist.

TypeId

Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id.

(Overgenomen van Attribute)

Methoden

Name Description
Equals(Object)

Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
GetHashCode()

Retourneert de hash-code voor dit exemplaar.

(Overgenomen van Attribute)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
IsDefaultAttribute()

Wanneer deze wordt overschreven in een afgeleide klasse, geeft u aan of de waarde van dit exemplaar de standaardwaarde is voor de afgeleide klasse.

(Overgenomen van Attribute)
Match(Object)

Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde geretourneerd die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

Name Description
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

(Overgenomen van Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hiermee haalt u de typegegevens voor een object op, die kan worden gebruikt om de typegegevens voor een interface op te halen.

(Overgenomen van Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

(Overgenomen van Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

(Overgenomen van Attribute)
IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection)

Voegt aangepaste gegevens toe waartoe de bindingselementen toegang hebben om de implementatie van het contract te ondersteunen.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Controleert of het type hosting consistent is met de ASP.NET compatibiliteitsvereisten.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Valideert het servicegedrag.

Van toepassing op