Sdílet prostřednictvím


AspNetCompatibilityRequirementsAttribute Třída

Definice

Používá se u služby Windows Communication Foundation (WCF), která označuje, jestli je možné tuto službu spustit v kódu kompatibility 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
Dědičnost
AspNetCompatibilityRequirementsAttribute
Atributy
Implementuje

Příklady

Vývojáři služeb můžou zajistit, aby se jejich služba spouštěla pouze v režimu kompatibility ASP.NET nastavením RequirementsMode vlastnosti na AspNetCompatibilityRequirementsAttribute Required tuto vlastnost, jak je znázorněno v následujícím příkladu.

[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

Poznámky

Při použití na třídu implementace služby tento atribut označuje, zda tato služba vyžaduje nebo podporuje režim kompatibility ASP.NET povolit pro doménu hostitelské aplikace (AppDomain).

AppDomains hostující služby WCF můžou běžet ve dvou různých režimech hostování:

  • Režim smíšených přenosů (výchozí): V tomto režimu se služby WCF neúčastní ASP.NET kanálu HTTP. To zaručuje, že se služba WCF chová konzistentně nezávisle na hostitelském prostředí a přenosu.

  • ASP.NET režim kompatibility: V tomto režimu se služby WCF účastní kanálu ASP.NET HTTP způsobem podobným službám ASMX. ASP.NET funkce, jako je autorizace souborů, ověřování urlauthorizace a stav relace HTTP, platí pro služby WCF spuštěné v tomto režimu.

Režim hostování je řízen příznakem aspNetCompatibilityEnabledkonfigurace na úrovni aplikace .

<system.serviceModel>

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

</system.serviceModel>

Tento příznak je false ve výchozím nastavení a proto služby WCF běží v režimu smíšených přenosů, pokud explicitně nezadáte souhlas s režimem kompatibility ASP.NET.

Další informace o režimu kompatibility ASP.NET naleznete v tématu <serviceHostingEnvironment>.

RequirementsMode Použijte k tomu vlastnost. Za běhu můžou aplikace zjistit, jestli je povolen režim kompatibility ASP.NET kontrolou hodnoty statické vlastnosti AspNetCompatibilityEnabled.

Konstruktory

AspNetCompatibilityRequirementsAttribute()

Inicializuje novou instanci AspNetCompatibilityRequirementsAttribute třídy.

Vlastnosti

RequirementsMode

Získá nebo nastaví úroveň ASP.NET kompatibility vyžadované službou.

TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute.

(Zděděno od Attribute)

Metody

Equals(Object)

Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

(Zděděno od Attribute)
GetHashCode()

Vrátí hodnotu hash pro tuto instanci.

(Zděděno od Attribute)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
IsDefaultAttribute()

Při přepsání v odvozené třídě určuje, zda hodnota této instance je výchozí hodnotou odvozené třídy.

(Zděděno od Attribute)
Match(Object)

Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda se tato instance rovná zadanému objektu.

(Zděděno od Attribute)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

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

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.

(Zděděno od Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Načte informace o typu objektu, který lze použít k získání informací o typu rozhraní.

(Zděděno od Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).

(Zděděno od Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Poskytuje přístup k vlastnostem a metodám vystaveným objektem.

(Zděděno od Attribute)
IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection)

Přidá vlastní data, ke kterým mohou prvky vazby přistupovat, aby podporovaly implementaci kontraktu.

IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase)

Kontroluje, že typ hostování je konzistentní s požadavky na kompatibilitu ASP.NET.

IServiceBehavior.Validate(ServiceDescription, ServiceHostBase)

Ověří chování služby.

Platí pro