AspNetCompatibilityRequirementsAttribute Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Diterapkan ke layanan Windows Communication Foundation (WCF) untuk menunjukkan apakah layanan tersebut dapat dijalankan dalam kode kompatibilitas 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
- Warisan
- Atribut
- Penerapan
Contoh
Pengembang layanan dapat memastikan bahwa layanan mereka hanya dijalankan dalam Mode Kompatibilitas ASP.NET dengan mengatur RequirementsMode properti ke seperti yang AspNetCompatibilityRequirementsAttributeRequired ditunjukkan dalam contoh berikut
[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
Keterangan
Saat diterapkan ke kelas implementasi layanan, atribut ini menunjukkan apakah layanan ini memerlukan atau mendukung mode kompatibilitas ASP.NET untuk diaktifkan untuk domain aplikasi hosting (AppDomain).
AppDomains yang menghosting layanan WCF dapat berjalan dalam dua mode hosting yang berbeda:
Mode Transportasi Campuran (Default): Dalam mode ini, layanan WCF tidak berpartisipasi dalam alur HTTP ASP.NET. Ini menjamin bahwa layanan WCF bertingkah konsisten, independen dari lingkungan hosting dan transportasi.
ASP.NET Mode Kompatibilitas: Dalam mode ini, layanan WCF berpartisipasi dalam alur HTTP ASP.NET dengan cara yang mirip dengan layanan ASMX. ASP.NET fitur seperti Otorisasi File, UrlAuthorization, dan Status Sesi HTTP berlaku untuk layanan WCF yang berjalan dalam mode ini.
Mode hosting dikendalikan oleh bendera aspNetCompatibilityEnabledkonfigurasi tingkat aplikasi .
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
</system.serviceModel>
Bendera ini false secara default dan dengan demikian layanan WCF berjalan dalam Mode Transportasi Campuran kecuali Anda secara eksplisit memilih mode kompatibilitas ASP.NET.
Untuk informasi selengkapnya tentang mode kompatibilitas ASP.NET, lihat <serviceHostingEnvironment>.
RequirementsMode Gunakan properti untuk melakukan ini. Pada runtime, aplikasi dapat mendeteksi apakah mode kompatibilitas ASP.NET diaktifkan dengan memeriksa nilai properti AspNetCompatibilityEnabledstatis .
Konstruktor
| Nama | Deskripsi |
|---|---|
| AspNetCompatibilityRequirementsAttribute() |
Menginisialisasi instans baru dari kelas AspNetCompatibilityRequirementsAttribute. |
Properti
| Nama | Deskripsi |
|---|---|
| RequirementsMode |
Mendapatkan atau mengatur tingkat kompatibilitas ASP.NET yang diperlukan oleh layanan. |
| TypeId |
Ketika diimplementasikan dalam kelas turunan, mendapatkan pengidentifikasi unik untuk Attributeini. (Diperoleh dari Attribute) |
Metode
| Nama | Deskripsi |
|---|---|
| Equals(Object) |
Mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu. (Diperoleh dari Attribute) |
| GetHashCode() |
Mengembalikan kode hash untuk instans ini. (Diperoleh dari Attribute) |
| GetType() |
Mendapatkan Type instans saat ini. (Diperoleh dari Object) |
| IsDefaultAttribute() |
Ketika ditimpa dalam kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan. (Diperoleh dari Attribute) |
| Match(Object) |
Saat ditimpa dalam kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu. (Diperoleh dari Attribute) |
| MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (Diperoleh dari Object) |
| ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
| Nama | Deskripsi |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai. (Diperoleh dari Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Mengambil informasi jenis untuk objek, yang dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka. (Diperoleh dari Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1). (Diperoleh dari Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Menyediakan akses ke properti dan metode yang diekspos oleh objek. (Diperoleh dari Attribute) |
| IServiceBehavior.AddBindingParameters(ServiceDescription, ServiceHostBase, Collection<ServiceEndpoint>, BindingParameterCollection) |
Menambahkan data kustom yang dapat diakses elemen pengikatan untuk mendukung implementasi kontrak. |
| IServiceBehavior.ApplyDispatchBehavior(ServiceDescription, ServiceHostBase) |
Memeriksa apakah jenis hosting konsisten dengan persyaratan kompatibilitas ASP.NET. |
| IServiceBehavior.Validate(ServiceDescription, ServiceHostBase) |
Memvalidasi perilaku layanan. |