AspNetCompatibilityRequirementsAttribute Třída

Definice

Používá se u služby WCF (Windows Communication Foundation), která označuje, zda lze 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 AspNetCompatibilityRequirementsAttributeRequired hodnotu, 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

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

AppDomains hostující služby WCF se můžou spouštět 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 nezaúč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žimu 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ů, 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 K tomu použijte vlastnost. Za běhu můžou aplikace zjistit, jestli je povolen režim kompatibility ASP.NET kontrolou hodnoty statické vlastnosti AspNetCompatibilityEnabled.

Konstruktory

Name Description
AspNetCompatibilityRequirementsAttribute()

Inicializuje novou instanci AspNetCompatibilityRequirementsAttribute třídy.

Vlastnosti

Name Description
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

Name Description
Equals(Object)

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

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

Vrátí kód hash pro tuto instanci.

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

Získá Type aktuální instance.

(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 pro odvozenou třídu.

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

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

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

Vytvoří mělkou kopii aktuálního 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í

Name Description
_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 pro 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