ContractDescription Sınıf

Tanım

Bir uç noktanın dış dünyayla ne iletişim kurduğunu belirten bir Windows Communication Foundation (WCF) sözleşmesini açıklar.

C#
public class ContractDescription
Devralma
ContractDescription

Örnekler

Aşağıdaki örnekte, ContractDescription nesnesi oluşturmanın veya almanın çeşitli yolları gösterilmektedir. Daha sonra ContractDescription nesnesinde depolanan çeşitli bilgi parçalarını görüntüler.

C#
Uri baseAddress = new Uri("http://localhost:8001/Simple");
ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress);

serviceHost.AddServiceEndpoint(
    typeof(ICalculator),
    new WSHttpBinding(),
    "CalculatorServiceObject");

// Enable Mex
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
serviceHost.Description.Behaviors.Add(smb);

serviceHost.Open();

ContractDescription cd0 = new ContractDescription("ICalculator");
ContractDescription cd1 = new ContractDescription("ICalculator", "http://www.tempuri.org");
ContractDescription cd2 = ContractDescription.GetContract(typeof(ICalculator));
CalculatorService calcSvc = new CalculatorService();
ContractDescription cd3 = ContractDescription.GetContract(typeof(ICalculator), calcSvc);
ContractDescription cd4 = ContractDescription.GetContract(typeof(ICalculator), typeof(CalculatorService));
ContractDescription cd = serviceHost.Description.Endpoints[0].Contract;

Console.WriteLine("Displaying information for contract: {0}", cd.Name.ToString());

KeyedByTypeCollection<IContractBehavior> behaviors = cd.Behaviors;
Console.WriteLine("\tDisplay all behaviors:");
foreach (IContractBehavior behavior in behaviors)
{
    Console.WriteLine("\t\t" + behavior.ToString());
}

Type type = cd.CallbackContractType;

string configName = cd.ConfigurationName;
Console.WriteLine("\tConfiguration name: {0}", configName);

Type contractType = cd.ContractType;
Console.WriteLine("\tContract type: {0}", contractType.ToString());

bool hasProtectionLevel = cd.HasProtectionLevel;
if (hasProtectionLevel)
{
    ProtectionLevel protectionLevel = cd.ProtectionLevel;
    Console.WriteLine("\tProtection Level: {0}", protectionLevel.ToString());
}

string name = cd.Name;
Console.WriteLine("\tName: {0}", name);

string namespc = cd.Namespace;
Console.WriteLine("\tNamespace: {0}", namespc);

OperationDescriptionCollection odc = cd.Operations;
Console.WriteLine("\tDisplay Operations:");
foreach (OperationDescription od in odc)
{
    Console.WriteLine("\t\t" + od.Name);
}

SessionMode sm = cd.SessionMode;
Console.WriteLine("\tSessionMode: {0}", sm.ToString());

Collection<ContractDescription> inheretedContracts = cd.GetInheritedContracts();
Console.WriteLine("\tInherited Contracts:");
foreach (ContractDescription contractdescription in inheretedContracts)
{
    Console.WriteLine("\t\t" + contractdescription.Name);
}

Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();

// Close the ServiceHostBase to shutdown the service.
serviceHost.Close();

Açıklamalar

WCF sözleşmesi, uç noktanın dış dünyayla ne iletişim kurduğunu belirten bir işlem koleksiyonudur. Her işlem bir ileti değişimidir. Örneğin, bir istek iletisi ve ilişkili bir yanıt iletisi istek/yanıt iletisi değişimi oluşturur.

WCF sözleşmelerini ve bunların işlemlerini açıklamak için bir ContractDescription nesnesi kullanılır. bir ContractDescriptioniçinde, her sözleşme işlemi, işlemin tek yönlü mü yoksa istek/yanıt mı olduğu gibi, sözleşmenin parçası olan her işlemin yönlerini açıklayan ilgili bir OperationDescription sahiptir. Her OperationDescription, MessageDescriptionCollectionkullanarak işlemi oluşturan iletileri de açıklar. ContractDescription, programlama modelini kullanarak sözleşmeyi tanımlayan bir arabirime başvuru içerir. Bu arabirim ServiceContractAttribute ile işaretlenir ve uç nokta işlemlerine karşılık gelen yöntemleri OperationContractAttributeile işaretlenir.

çift yönlü sözleşmesi aşağıdaki mantıksal işlem kümelerini tanımlar:

  • Hizmetin istemcinin çağırması için kullanıma sunan bir küme.

  • İstemcinin çağıracak hizmeti kullanıma sunan bir küme.

Çift yönlü sözleşme tanımlamaya yönelik programlama modeli, her kümeyi ayrı bir arabirime bölmek ve her arabirime öznitelik uygulamaktır. Bu durumda, ContractDescription bunları tek bir çift yönlü sözleşmede gruplandıran arabirimlerin her birine bir başvuru içerir.

Bağlamalara benzer şekilde, her sözleşmenin hizmetin meta verilerinde benzersiz olarak tanımlayan bir Name ve Namespace vardır.

Oluşturucular

ContractDescription(String, String)

ContractDescription sınıfının yeni bir örneğini ad alanı nitelenmiş bir ad alanı adıyla başlatır.

ContractDescription(String)

Belirtilen adla ContractDescription sınıfının yeni bir örneğini başlatır.

Özellikler

Behaviors

Sözleşme açıklamasıyla ilişkili davranışları alır.

CallbackContractType

Sözleşme açıklamasının belirttiği geri çağırma sözleşmesi türünü alır veya ayarlar.

ConfigurationName

Sözleşme açıklaması için yapılandırma adını alır veya ayarlar.

ContractBehaviors

Sözleşmenin davranış koleksiyonunu alır.

ContractType

Sözleşme açıklamasının belirttiği sözleşme türünü alır veya ayarlar.

HasProtectionLevel

Sözleşmenin bir koruma düzeyi ayarlanıp ayarlanmadığını gösteren bir değer alır.

Name

Sözleşmenin adını alır veya ayarlar.

Namespace

Sözleşmenin ad alanını alır veya ayarlar.

Operations

Sözleşmeyle ilişkili işlem açıklamalarının koleksiyonunu alır.

ProtectionLevel

Sözleşmeyle ilişkili güvenlik koruması düzeyini alır veya ayarlar.

SessionMode

Bir oturumun sözleşme için gerekli olup olmadığını belirten bir değer alır veya ayarlar.

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetContract(Type, Object)

Belirtilen türde bir sözleşme ve hizmet uygulaması için sözleşme açıklamasını döndürür.

GetContract(Type, Type)

Belirtilen sözleşme türü ve belirtilen hizmet türü için sözleşme açıklamasını döndürür.

GetContract(Type)

Belirtilen sözleşme türü için sözleşme açıklamasını döndürür.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetInheritedContracts()

Geçerli sözleşme açıklaması tarafından devralınan sözleşme açıklamalarından oluşan bir koleksiyon döndürür.

GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
ShouldSerializeProtectionLevel()

ProtectionLevel özelliğinin varsayılan değerinden değiştirilip değiştirilmediğini ve seri hale getirilip getirilmeyeceğini gösteren bir değer döndürür.

ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ürün Sürümler
.NET Core 1.0, Core 1.1, 8
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
UWP 10.0