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 kapsamda 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 bir 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 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 verilerde özel ilke onayları sırasıyla dışarı ve içeri aktarılmaya yönelik nesnelerdir. 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ğlamaya GetBindingAssertions yönelik 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
PolicyConversionContext(ServiceEndpoint) |
Belirtilen uç noktayı kullanarak sınıfının yeni bir örneğini PolicyConversionContext başlatır. |
Özellikler
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
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() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |