PolicyConversionContext Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Meta verilerde bağlama onaylarını almak ve uygun kapsama bağlama öğeleri uygulamak için kullanılan bir sınıf tanımlar.
public ref class PolicyConversionContext abstract
public abstract class PolicyConversionContext
type PolicyConversionContext = class
Public MustInherit Class PolicyConversionContext
- Devralma
-
PolicyConversionContext
Örnekler
Aşağıdaki kod örneği, tüm ilke onaylarını konsola ImportPolicy yazan yönteminin bir uygulamasını gösterir. Kod açıklamaları belirli bir özel ilke onayını bulma, uygulayan bağlama öğesi oluşturup ekleme ve onaylama işlemini koleksiyondan kaldırmayı açıklar.
public void ImportPolicy(MetadataImporter importer,
PolicyConversionContext context)
{
Console.WriteLine("The custom policy importer has been called.");
foreach (XmlElement assertion in context.GetBindingAssertions())
{
Console.WriteLine(assertion.NamespaceURI + " : " + assertion.Name);
// locate a particular assertion by Name and NamespaceURI
XmlElement customAssertion = context.GetBindingAssertions().Find(name1, ns1);
if (customAssertion != null)
{
// Found assertion; remove from collection.
context.GetBindingAssertions().Remove(customAssertion);
Console.WriteLine(
"Removed our custom assertion from the imported "
+ "assertions collection and inserting our custom binding element."
);
// Here if you find the custom policy assertion that you are looking for,
// add the custom binding element that handles the functionality that the policy indicates.
// Attach it to the PolicyConversionContext.BindingElements collection.
// For example, if the custom policy had a "speed" attribute value:
/*
string speed
= customAssertion.GetAttribute(SpeedBindingElement.name2, SpeedBindingElement.ns2);
SpeedBindingElement e = new SpeedBindingElement(speed);
context.BindingElements.Add(e);
*/
}
// write assertion name in red.
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(assertion.NamespaceURI + " : " + assertion.Name);
//write contents in gray.
Console.WriteLine(assertion.OuterXml);
Console.ForegroundColor = ConsoleColor.Gray;
}
}
Aşağıdaki kod örneği, yapılandırma bölümünü kullanarak uygulamaların nasıl kaydedileceklerini IPolicyImportExtension<policyImporters> gösterir.
<configuration>
<system.serviceModel>
<client>
<metadata>
<policyImporters>
<extension type="CustomPolicyImporter, assembly"/>
</policyImporters>
</metadata>
</client>
</system.serviceModel>
</configuration>
Aşağıdaki kod örneği, bir özel bağlama öğesinin bağlama onaylarına özel bir ilke onaylaması eklemek için nasıl uygulayabileceğini IPolicyExportExtension gösterir.
public class MyBindingElement : BindingElement, IPolicyExportExtension
{
// BindingElement implementation . . .
public void ExportPolicy(
MetadataExporter exporter, PolicyConversionContext context)
{
XmlDocument xmlDoc = new XmlDocument();
XmlElement xmlElement =
xmlDoc.CreateElement("MyPolicyAssertion");
context.GetBindingAssertions().Add(xmlElement);
}
// Note: All custom binding elements must return a deep clone
// to enable the run time to support multiple bindings using the
// same custom binding.
public override BindingElement Clone()
{
// this is just a placeholder
return null;
}
// Call the inner property.
public override T GetProperty<T>(BindingContext context)
{
return context.GetInnerProperty<T>();
}
}
public class Program {
public static void Main(string[] args) {
EndpointAddress address =
new EndpointAddress("http://localhost/metadata");
CustomBinding customBinding =
new CustomBinding(new BasicHttpBinding());
customBinding.Elements.Add(new MyBindingElement());
ContractDescription contract =
ContractDescription.GetContract(typeof(MyContract));
ServiceEndpoint endpoint =
new ServiceEndpoint(contract, customBinding, address);
MetadataExporter exporter = new WsdlExporter();
exporter.ExportEndpoint(endpoint);
}
}
Açıklamalar
PolicyConversionContext uygulamasına geçirilir IPolicyExportExtension ve IPolicyImportExtension meta veriler arasında ve meta verilerden özel ilke onayları dışarı ve içeri aktaracak nesneler. Dışarı aktarmada, özel onaylar eklemek için bir ilke onayları koleksiyonu alınır. İçeri aktarmada, belirli onayları içeri aktarmak ve bağlama öğelerini uygun şekilde yapılandırmak için onaylar alınır.
yöntemi bağlama GetBindingAssertions için olan tüm ilke onaylarını döndürür.
yöntemi, GetFaultBindingAssertions belirli bir hata iletisi için tüm ilke onaylarını döndürür.
yöntemi, GetMessageBindingAssertions belirli bir ileti için tüm ilke onaylarını döndürür.
yöntemi, GetOperationBindingAssertions belirli bir işlem için tüm ilke onaylarını döndürür.
özelliği, BindingElements açıklanan veya yapılandırılan bağlama için bağlama öğelerini alır.
özelliği, Contract bağlamanın açıklandığı veya yapılandırıldığı sözleşme açıklamasını alır.
Oluşturucular
| Name | Description |
|---|---|
| PolicyConversionContext(ServiceEndpoint) |
Belirtilen uç noktayı kullanarak sınıfın PolicyConversionContext yeni bir örneğini başlatır. |
Özellikler
| Name | Description |
|---|---|
| BindingElements |
İlke onaylarını uygulayan özel bağlama öğelerinin eklendiği bağlama öğeleri koleksiyonunu alır. |
| Contract |
Uç noktanın sözleşmesini alır. |
Yöntemler
| Name | Description |
|---|---|
| Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
| GetBindingAssertions() |
Meta verilerden ilke onayları koleksiyonunu alır. |
| GetFaultBindingAssertions(FaultDescription) |
Belirtilen SOAP hatası için ilke onayları koleksiyonunu döndürür. |
| GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
| GetMessageBindingAssertions(MessageDescription) |
bir ileti için ilke onayları koleksiyonunu alır. |
| GetOperationBindingAssertions(OperationDescription) |
Belirtilen işlem için bir ilke onayları koleksiyonu 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) |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |