AspNetCompatibilityRequirementsAttribute クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Windows Communication Foundation (WCF) サービスが 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
- 継承
- 属性
- 実装
例
サービス開発者は、次の例に示すように、 の プロパティAspNetCompatibilityRequirementsAttributeRequiredを に設定RequirementsModeすることで、サービスが ASP.NET 互換モードでのみ実行されるようにすることができます
[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
注釈
サービス実装クラスに適用された場合、この属性は、このサービスが、ホスティング アプリケーション ドメイン (AppDomain) に対して有効にする ASP.NET 互換性モードを必要とするか、サポートするかを示します。
WCF サービスをホストする AppDomains は、次の 2 つの異なるホスティング モードで実行できます。
混合トランスポート モード (既定値): このモードでは、WCF サービスは ASP.NET HTTP パイプラインに参加しません。 これにより、WCF サービスは、ホスティング環境やトランスポートに関係なく、一貫して動作します。
ASP.NET 互換モード: このモードでは、WCF サービスは ASMX サービスと同様の方法で ASP.NET HTTP パイプラインに参加します。 ファイル承認、UrlAuthorization、HTTP セッション状態などの ASP.NET 機能は、このモードで実行されている WCF サービスに適用できます。
ホスト モードは、アプリケーション レベルの構成フラグである aspNetCompatibilityEnabled
によって制御されます。
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
</system.serviceModel>
このフラグは false
既定で設定されるため、ASP.NET 互換モードを明示的に選択しない限り、WCF サービスは混合トランスポート モードで実行されます。
ASP.NET 互換モードの詳細については、「serviceHostingEnvironment>」を参照してください<。
これを行うには、RequirementsMode プロパティを使用します。 実行時に、アプリケーションは、静的プロパティ AspNetCompatibilityEnabledの値を確認することで、ASP.NET 互換モードが有効になっているかどうかを検出できます。
コンストラクター
AspNetCompatibilityRequirementsAttribute() |
AspNetCompatibilityRequirementsAttribute クラスの新しいインスタンスを初期化します。 |
プロパティ
RequirementsMode |
サービスに必要な ASP.NET 互換性のレベルを取得または設定します。 |
TypeId |
派生クラスで実装されると、この Attribute の一意の識別子を取得します。 (継承元 Attribute) |
メソッド
Equals(Object) |
このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。 (継承元 Attribute) |
GetHashCode() |
このインスタンスのハッシュ コードを返します。 (継承元 Attribute) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
IsDefaultAttribute() |
派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。 (継承元 Attribute) |
Match(Object) |
派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。 (継承元 Attribute) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
明示的なインターフェイスの実装
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
一連の名前を対応する一連のディスパッチ識別子に割り当てます。 (継承元 Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。 (継承元 Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。 (継承元 Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。 (継承元 Attribute) |
IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection) |
コントラクトの実装をサポートするためにバインド要素からアクセスできるカスタム データを追加します。 |
IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase) |
ホスティングの種類が ASP.NET の互換性要件と一致していることを確認します。 |
IServiceBehavior.Validate(ServiceDescription, ServiceHostBase) |
サービス動作を検証します。 |
適用対象
.NET