void System.ServiceModel.Description.IWsdlExportExtension.ExportEndpoint(WsdlExporter exporter, WsdlEndpointConversionContext context) { MessageEncodingBindingElement messageEncodingBindingElement = context.Endpoint.Binding.CreateBindingElements().Find <MessageEncodingBindingElement>(); if (messageEncodingBindingElement == null) { messageEncodingBindingElement = Microsoft.ServiceBus.Messaging.Channels.TransportDefaults.CreateDefaultEncoder(); } SoapBinding soapBinding = NetMessagingTransportBindingElement.GetSoapBinding(context, exporter); if (soapBinding != null) { soapBinding.Transport = "http://sample.schemas.microsoft.com/policy/netMessaging"; } if (context.WsdlPort != null) { WSAddressingHelper.AddAddressToWsdlPort(context.WsdlPort, context.Endpoint.Address, messageEncodingBindingElement.MessageVersion.Addressing); } }
void System.ServiceModel.Description.IPolicyExportExtension.ExportPolicy(MetadataExporter exporter, PolicyConversionContext context) { if (exporter == null || context == null) { throw Microsoft.ServiceBus.Messaging.FxTrace.Exception.ArgumentNull((exporter == null ? "exporter" : "context")); } ICollection <XmlElement> bindingAssertions = context.GetBindingAssertions(); bindingAssertions.Add((new XmlDocument()).CreateElement("sb", "netMessaging", "http://sample.schemas.microsoft.com/policy/netMessaging")); MessageEncodingBindingElement messageEncodingBindingElement = context.BindingElements.Find <MessageEncodingBindingElement>(); if (messageEncodingBindingElement == null) { messageEncodingBindingElement = Microsoft.ServiceBus.Messaging.Channels.TransportDefaults.CreateDefaultEncoder(); IPolicyExportExtension policyExportExtension = messageEncodingBindingElement as IPolicyExportExtension; if (policyExportExtension != null) { policyExportExtension.ExportPolicy(exporter, context); } } WSAddressingHelper.AddWSAddressingAssertion(exporter, context, messageEncodingBindingElement.MessageVersion.Addressing); }