public void ExportEndpointTest2() { WsdlExporter we = new WsdlExporter(); ServiceEndpoint se = new ServiceEndpoint(ContractDescription.GetContract(typeof(IEchoService2))); se.Binding = new BasicHttpBinding(); se.Address = new EndpointAddress("http://localhost:8080"); we.ExportEndpoint(se); MetadataSet ms = we.GetGeneratedMetadata(); Assert.AreEqual(5, ms.MetadataSections.Count); WSServiceDescription sd = ms.MetadataSections [0].Metadata as WSServiceDescription; CheckContract_IEchoService2(ms, "#eet20"); CheckServicePort(GetService(GetServiceDescription(ms, "http://tempuri.org/", "#eet21"), "service", "ExportEndpointTest"), "BasicHttpBinding_ThisIsEchoService", new XmlQualifiedName("BasicHttpBinding_ThisIsEchoService", "http://tempuri.org/"), "http://localhost:8080/", "#eet22"); CheckBasicHttpBinding(sd, "BasicHttpBinding_ThisIsEchoService", new XmlQualifiedName("ThisIsEchoService", "http://tempuri.org/"), "Echo", "http://tempuri.org/ThisIsEchoService/Echo", true, true, "#eet03"); //FIXME: CheckXmlSchema }
private MetadataSet GetExportedMetadata(ServiceDescription serviceDescription) { Collection <ServiceEndpoint> endpoints = new Collection <ServiceEndpoint>(); foreach (var endpoint in serviceDescription.Endpoints) { if (endpoint.Contract.ContractType == typeof(IMetadataProvisionService)) { continue; } ServiceEndpoint newEndpoint = new ServiceEndpoint(endpoint.Contract, endpoint.Binding, endpoint.Address); newEndpoint.Name = endpoint.Name; foreach (var behavior in endpoint.Behaviors) { newEndpoint.Behaviors.Add(behavior); } endpoints.Add(newEndpoint); } WsdlExporter wsdlExporter = new WsdlExporter(); XmlQualifiedName wsxmlQualifiedName = new XmlQualifiedName(serviceDescription.Name, serviceDescription.Namespace); wsdlExporter.ExportEndpoints(endpoints, wsxmlQualifiedName); return(wsdlExporter.GetGeneratedMetadata()); }
void WriteTo(WsdlExporter we, string name) { using (XmlTextWriter xw = new XmlTextWriter(name, Encoding.UTF8)) { xw.Formatting = Formatting.Indented; we.GetGeneratedMetadata().WriteTo(xw); } }
public void ExportEndpointTest() { WsdlExporter we = new WsdlExporter(); ServiceEndpoint se = new ServiceEndpoint(ContractDescription.GetContract(typeof(IEchoService))); se.Binding = new BasicHttpBinding(); se.Address = new EndpointAddress("http://localhost:8080"); //TEST Invalid name: 5se.Name = "Service#1"; //se.Name = "Service0"; //se.ListenUri = new Uri ("http://localhost:8080/svc"); we.ExportEndpoint(se); MetadataSet ms = we.GetGeneratedMetadata(); Assert.AreEqual(6, ms.MetadataSections.Count); CheckContract_IEchoService(ms, "#eet01"); WSServiceDescription sd = GetServiceDescription(ms, "http://tempuri.org/", "ExportEndpointTest"); CheckServicePort(GetService(sd, "service", "ExportEndpointTest"), "BasicHttpBinding_IEchoService", new XmlQualifiedName("BasicHttpBinding_IEchoService", "http://tempuri.org/"), "http://localhost:8080/", "#eet02"); CheckBasicHttpBinding(sd, "BasicHttpBinding_IEchoService", new XmlQualifiedName("IEchoService", "http://myns/echo"), "Echo", "http://myns/echo/IEchoService/Echo", true, true, "#eet03"); }
private XmlDocument ExportEndpoints() { WsdlExporter exporter = new WsdlExporter(); foreach (ServiceEndpoint ep in endpoints) { exporter.ExportEndpoint(ep); } MetadataSet metadataSet = exporter.GetGeneratedMetadata(); StringBuilder b = new StringBuilder(); StringWriter sw = new StringWriter(b); XmlTextWriter tw = new XmlTextWriter(sw); foreach (MetadataSection section in metadataSet.MetadataSections) { if (section.Metadata is System.Web.Services.Description.ServiceDescription) { System.Web.Services.Description.ServiceDescription sd = (System.Web.Services.Description.ServiceDescription)section.Metadata; sd.Write(tw); } } string wcfWsdl = b.ToString(); // Read it in to an XmlDocument. XmlDocument wcfWsdlDoc = new XmlDocument(); wcfWsdlDoc.LoadXml(wcfWsdl); return(wcfWsdlDoc); }
static void Main(string[] args) { // <Snippet1> WsdlExporter exporter = new WsdlExporter(); // </Snippet1> // <Snippet2> exporter.PolicyVersion = PolicyVersion.Policy15; // </Snippet2> // <Snippet3> ServiceEndpoint [] myServiceEndpoints = new ServiceEndpoint[2]; ContractDescription myDescription = new ContractDescription("myContract"); myServiceEndpoints[0] = new ServiceEndpoint(myDescription, new BasicHttpBinding(), new EndpointAddress("http://localhost/myservice")); myServiceEndpoints[1] = new ServiceEndpoint(myDescription, new BasicHttpBinding(), new EndpointAddress("http://localhost/myservice")); // </Snippet3> // <Snippet4> // Export all endpoints for each endpoint in collection. foreach (ServiceEndpoint endpoint in myServiceEndpoints) { exporter.ExportEndpoint(endpoint); } // </Snippet4> // <Snippet5> // If there are no errors, get the documents. MetadataSet metadataDocs = null; if (exporter.Errors.Count != 0) { metadataDocs = exporter.GetGeneratedMetadata(); } // </Snippet5> }
public static XmlDocument GetSingleWsdl <TContract>(out string[] errors) { var description = ContractDescription.GetContract(typeof(TContract)); var wsdlExporter = new WsdlExporter(); wsdlExporter.ExportContract(description); errors = wsdlExporter.Errors.Select(e => e.Message).ToArray(); var wsdlMetadata = wsdlExporter.GetGeneratedMetadata(); var asy = Assembly.GetAssembly(typeof(WsdlExporter)); var wsdlHelperType = asy.GetType("System.ServiceModel.Description.WsdlHelper", true); var getSingleWsdl = wsdlHelperType.GetMethod("GetSingleWsdl", BindingFlags.Public | BindingFlags.Static); var parameters = new object[] { wsdlMetadata }; var serviceDescription = (ServiceDescription)getSingleWsdl.Invoke(null, parameters); var doc = new XmlDocument(); var writer = doc.CreateNavigator().AppendChild(); try { serviceDescription.Write(writer); return(doc); } finally { writer.Close(); } }
static MetadataSet GetMetadata(Type serviceType) { var description = ContractDescription.GetContract(serviceType); var exporter = new WsdlExporter(); exporter.ExportContract(description); var metadata = exporter.GetGeneratedMetadata(); return(metadata); }
public void ExportContract2() { WsdlExporter we = new WsdlExporter(); we.ExportContract(ContractDescription.GetContract(typeof(IFoo1))); MetadataSet ms = we.GetGeneratedMetadata(); Assert.AreEqual(5, ms.MetadataSections.Count); }
public static MetadataSet BasicHttp() { var exporter = new WsdlExporter(); var cd = new ContractDescription("MyContract"); exporter.ExportEndpoint(new ServiceEndpoint( cd, new BasicHttpBinding(), new EndpointAddress(HttpUri))); return(exporter.GetGeneratedMetadata()); }
public void Ctor1() { WsdlExporter we = new WsdlExporter(); Assert.IsNotNull(we.GetGeneratedMetadata()); Assert.IsNotNull(we.GeneratedWsdlDocuments, "#c1"); Assert.AreEqual(0, we.GeneratedWsdlDocuments.Count, "#c2"); Assert.IsNotNull(we.GeneratedXmlSchemas, "#c3"); Assert.AreEqual(0, we.GeneratedXmlSchemas.Count, "#c4"); }
public void ExportContract1() { WsdlExporter we = new WsdlExporter(); we.ExportContract(ContractDescription.GetContract(typeof(IEchoService))); MetadataSet ms = we.GetGeneratedMetadata(); Assert.AreEqual(5, ms.MetadataSections.Count); CheckContract_IEchoService(ms, "ExportContract1"); }
public static MetadataSet NetTcp_Operation() { var exporter = new WsdlExporter(); var cd = ContractDescription.GetContract(typeof(IMyContract)); exporter.ExportEndpoint(new ServiceEndpoint( cd, new NetTcpBinding(SecurityMode.None, false), new EndpointAddress(NetTcpUri))); return(exporter.GetGeneratedMetadata()); }
public static MetadataSet NetTcp_TransportWithMessageCredential() { var exporter = new WsdlExporter(); var cd = new ContractDescription("MyContract"); exporter.ExportEndpoint(new ServiceEndpoint( cd, new NetTcpBinding(SecurityMode.TransportWithMessageCredential, false), new EndpointAddress(NetTcpUri))); return(exporter.GetGeneratedMetadata()); }
public static MetadataSet NetTcp_ReliableSession() { var exporter = new WsdlExporter(); var cd = new ContractDescription("MyContract"); var binding = new NetTcpBinding(SecurityMode.None, true); exporter.ExportEndpoint(new ServiceEndpoint( cd, binding, new EndpointAddress(NetTcpUri))); return(exporter.GetGeneratedMetadata()); }
public static MetadataSet BasicHttp_Operation() { var exporter = new WsdlExporter(); var cd = ContractDescription.GetContract(typeof(IMyContract)); var binding = new BasicHttpBinding(); exporter.ExportEndpoint(new ServiceEndpoint( cd, binding, new EndpointAddress(HttpUri))); return(exporter.GetGeneratedMetadata()); }
public static MetadataSet BasicHttps_TransportWithMessageCredential() { var exporter = new WsdlExporter(); var cd = new ContractDescription("MyContract"); var binding = new BasicHttpsBinding(BasicHttpsSecurityMode.TransportWithMessageCredential); exporter.ExportEndpoint(new ServiceEndpoint( cd, binding, new EndpointAddress(HttpsUri))); return(exporter.GetGeneratedMetadata()); }
public static MetadataSet NetTcp_MessageSecurity() { var exporter = new WsdlExporter(); var cd = new ContractDescription("MyContract"); exporter.ExportEndpoint(new ServiceEndpoint( cd, new NetTcpBinding(SecurityMode.Message, false), new EndpointAddress(NetTcpUri))); var doc = exporter.GetGeneratedMetadata(); return(doc); }
public static MetadataSet BasicHttp_NtlmAuth() { var exporter = new WsdlExporter(); var cd = new ContractDescription("MyContract"); var binding = new BasicHttpBinding(BasicHttpSecurityMode.TransportCredentialOnly); binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm; exporter.ExportEndpoint(new ServiceEndpoint( cd, binding, new EndpointAddress(HttpUri))); return(exporter.GetGeneratedMetadata()); }
public static MetadataSet BasicHttp_TransportSecurity() { var exporter = new WsdlExporter(); var cd = new ContractDescription("MyContract"); var binding = new BasicHttpBinding(); binding.Security.Mode = BasicHttpSecurityMode.Transport; exporter.ExportEndpoint(new ServiceEndpoint( cd, binding, new EndpointAddress(HttpUri))); return(exporter.GetGeneratedMetadata()); }
public static MetadataSet NetTcp_TransferMode() { var exporter = new WsdlExporter(); var cd = new ContractDescription("MyContract"); var binding = new NetTcpBinding(SecurityMode.None, false); binding.TransferMode = TransferMode.Streamed; exporter.ExportEndpoint(new ServiceEndpoint( cd, binding, new EndpointAddress(NetTcpUri))); return(exporter.GetGeneratedMetadata()); }
public static MetadataSet BasicHttps_Certificate() { var exporter = new WsdlExporter(); var cd = new ContractDescription("MyContract"); var binding = new BasicHttpsBinding(); binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate; exporter.ExportEndpoint(new ServiceEndpoint( cd, binding, new EndpointAddress(HttpsUri))); return(exporter.GetGeneratedMetadata()); }
public static MetadataSet BasicHttp_MessageSecurity() { var exporter = new WsdlExporter(); var cd = new ContractDescription("MyContract"); var binding = new BasicHttpBinding(); binding.Security.Mode = BasicHttpSecurityMode.Message; binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.Certificate; exporter.ExportEndpoint(new ServiceEndpoint( cd, binding, new EndpointAddress(HttpUri))); return(exporter.GetGeneratedMetadata()); }
public static MetadataSet BasicHttp_Mtom() { var exporter = new WsdlExporter(); var cd = new ContractDescription("MyContract"); var binding = new BasicHttpBinding(); binding.MessageEncoding = WSMessageEncoding.Mtom; exporter.ExportEndpoint(new ServiceEndpoint( cd, binding, new EndpointAddress(HttpUri))); var doc = exporter.GetGeneratedMetadata(); return(doc); }
static void Main(string[] args) { ContractDescription contract = ContractDescription.GetContract(typeof(IOrderService)); EndpointAddress address1 = new EndpointAddress("http://127.0.0.1/orderservice"); EndpointAddress address2 = new EndpointAddress("net.tcp://127.0.0.1/orderservice"); ServiceEndpoint endpoint1 = new ServiceEndpoint(contract, new WS2007HttpBinding(), address1); ServiceEndpoint endpoint2 = new ServiceEndpoint(contract, new NetTcpBinding(), address2); XmlQualifiedName serviceName = new XmlQualifiedName("OrderService", "http://www.artech.com/services/"); WsdlExporter exporter = new WsdlExporter(); exporter.ExportEndpoints(new ServiceEndpoint[] { endpoint1, endpoint2 }, serviceName); MetadataSet metadata = exporter.GetGeneratedMetadata(); using (XmlWriter writer = new XmlTextWriter("metadata.xml", Encoding.UTF8)) { metadata.WriteTo(writer); } Process.Start("metadata.xml"); }
static void Main(string[] args) { //MetadataSection metadataSection = new MetadataSection(); //MetadataLocation metadataLocation = new MetadataLocation(); //WsdlExporter wsdlExporter = new WsdlExporter(); ContractDescription contract = ContractDescription.GetContract(typeof(IOrderService)); EndpointAddress endpointAddress1 = new EndpointAddress("http://127.0.0.1/orderservice"); EndpointAddress endpointAddress2 = new EndpointAddress("net.tcp://127.0.0.1/orderservice"); ServiceEndpoint endpoint1 = new ServiceEndpoint(contract, new WSHttpBinding(), endpointAddress1); ServiceEndpoint endpoint2 = new ServiceEndpoint(contract, new NetTcpBinding(), endpointAddress2); XmlQualifiedName serviceName = new XmlQualifiedName("OrderService", "http://www.lhl.com"); WsdlExporter wsdlExporter = new WsdlExporter(); wsdlExporter.ExportEndpoints(new ServiceEndpoint[] { endpoint1, endpoint2 }, serviceName); MetadataSet metadata = wsdlExporter.GetGeneratedMetadata(); using (XmlWriter writer = new XmlTextWriter("metadata.xml", Encoding.UTF8)) { metadata.WriteTo(writer); } }
private static void ExportMetadata(ServiceEndpoint endpoint, EndpointDiscoveryBehavior discovery) { var exporter = new WsdlExporter(); exporter.ExportEndpoint(endpoint); var metadata = exporter.GetGeneratedMetadata(); var document = new XDocument(); using (var xmlWriter = document.CreateWriter()) { xmlWriter.WriteStartElement(WcfConstants.EndpointMetadata.LocalName, WcfConstants.EndpointMetadata.Namespace.NamespaceName); metadata.WriteTo(xmlWriter); xmlWriter.WriteEndElement(); xmlWriter.Flush(); } discovery.Extensions.Add(document.Root); }
public void ExportEndpointTest5() { WsdlExporter we = new WsdlExporter(); ServiceEndpoint se = new ServiceEndpoint(ContractDescription.GetContract(typeof(IEchoService))); se.Binding = new BasicHttpBinding(); se.Address = new EndpointAddress("http://localhost:8080"); we.ExportEndpoint(se); MetadataSet ms = we.GetGeneratedMetadata(); Assert.AreEqual(6, ms.MetadataSections.Count); WSServiceDescription wsd = GetServiceDescription(ms, "http://tempuri.org/", "ExportEndpointTest5#1"); SoapBinding soapBinding = (SoapBinding)wsd.Bindings [0].Extensions [0]; Assert.AreEqual(SoapBindingStyle.Document, soapBinding.Style, "soapBinding.Style"); Assert.AreEqual(SoapBinding.HttpTransport, soapBinding.Transport, "soapBinding.Transport"); }
private void comboBoxContracts_TextChanged(object sender, EventArgs e) { try { if (sender is ComboBox && (sender as ComboBox).Tag != null && !string.IsNullOrEmpty(this.comboBoxContracts.Text)) { Assembly asm = (sender as ComboBox).Tag as Assembly; WsdlExporter exporter = new WsdlExporter(); // generate contract from the clr type ContractDescription contract = ContractDescription.GetContract(asm.GetType(this.comboBoxContracts.Text)); // dummy endpoint exporter.ExportEndpoint(new ServiceEndpoint(contract, new NetNamedPipeBinding(), new EndpointAddress("net.pipe://localhost"))); // generate metadata MetadataSet set = exporter.GetGeneratedMetadata(); if (set != null) { // show in the notepad StringBuilder sb = new StringBuilder(); set.WriteTo(XmlWriter.Create(sb)); this.xmlNotepadPanelControl1.XmlNotepadForm.LoadXmlDocument(sb.ToString()); } } else { this.xmlNotepadPanelControl1.XmlNotepadForm.ClearXmlDocument(); } } catch (Exception ex) { MessageBox.Show(MetadataHelper.ErrorMessage(ex), "Loading resource", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
//FIXME: One check not working, BeginGetResult public void ExportMexContract() { WsdlExporter we = new WsdlExporter(); ContractDescription cd = ContractDescription.GetContract(typeof(IMetadataExchange)); we.ExportContract(cd); MetadataSet ms = we.GetGeneratedMetadata(); WSServiceDescription sd = GetServiceDescription(ms, "http://schemas.microsoft.com/2006/04/mex", "ExportMexContract"); CheckMessage(sd, "IMetadataExchange_Get_InputMessage", "request", "http://schemas.microsoft.com/Message:MessageBody", true, "#exc0"); CheckMessage(sd, "IMetadataExchange_Get_OutputMessage", "GetResult", "http://schemas.microsoft.com/Message:MessageBody", true, "#exc1"); //PortType PortType port_type = sd.PortTypes ["IMetadataExchange"]; Assert.IsNotNull(port_type, "#exc2, PortType named IMetadataExchange not found."); Assert.AreEqual(1, port_type.Operations.Count, "#exc3"); Operation op = port_type.Operations [0]; Assert.AreEqual("Get", op.Name, "#exc4"); Assert.AreEqual(2, op.Messages.Count, "#exc5"); CheckOperationMessage(op.Messages [0], "http://schemas.microsoft.com/2006/04/mex:IMetadataExchange_Get_InputMessage", typeof(OperationInput), "http://schemas.xmlsoap.org/ws/2004/09/transfer/Get"); CheckOperationMessage(op.Messages [1], "http://schemas.microsoft.com/2006/04/mex:IMetadataExchange_Get_OutputMessage", typeof(OperationOutput), "http://schemas.xmlsoap.org/ws/2004/09/transfer/GetResponse"); CheckSpecialMessage(ms, "#exc6"); Assert.AreEqual(1, we.GeneratedWsdlDocuments.Count, "GeneratedWsdlDocuments.Count"); Assert.AreEqual(1, we.GeneratedXmlSchemas.Count, "GeneratedXmlSchemas.Count"); }