Как изменить пространство имен в проекте веб-сервиса в C# - PullRequest
2 голосов
/ 04 августа 2020

У меня есть приложение как веб-сервис с клиентом и сервисом. Приложение создает файл wsdl с некоторыми свойствами. Другая компания, которая отправляет файл XML для использования нашей веб-службы, хочет изменить пространство имен в нашей веб-службе. Есть ли возможность как сделать это в Visual Studio? Я думал, что это может быть легко, например, в справочниках служб, но я не смог найти его в inte rnet.

Edit : В решении есть две папки. Один предназначен для клиента (MasterDataClient), второй - для службы (MasterDataService). В папке «Служба» есть интерфейс IMasterDataService с таким кодом:

using System.ServiceModel;
using System.CodeDom.Compiler;

namespace MyWebService
{
    [GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [ServiceContractAttribute(Namespace = "urn:sap-com:document:sap:soap:functions:mc-style")]
    public interface IMasterDataService
    {
        [OperationContract]
        [XmlSerializerFormat()]
        checkInterfaceResponse checkInterface(checkInterfaceRequest request);

        [OperationContract]
        [XmlSerializerFormat()]
        updateMaterialResponse1 updateMaterial(updateMaterialRequest1 request);

        [OperationContract]
        [XmlSerializerFormat()]
        updatePriceListResponse1 updatePriceList(updatePriceListRequest1 request);

        [OperationContract]
        [XmlSerializerFormat()]
        notifyFullDataReadyResponse1 notifyFullDataReady(notifyFullDataReadyRequest1 request);

        [OperationContract]
        [XmlSerializerFormat()]
        updateCustomerResponse1 updateCustomer(updateCustomerRequest1 request);

        [OperationContract]
        [XmlSerializerFormat()]
        updateVendorResponse1 updateVendor(updateVendorRequest1 request);
    }
}

Могу ли я просто изменить значение атрибута Namespace в ServiceContractAttribute? Я прав? А потом развернуть?

Результат выглядит нормально.

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:tns="http://tempuri.org/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:i0="http://service.sc/" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" name="MasterDataService" targetNamespace="http://tempuri.org/">
<wsdl:import namespace="http://service.sc/" location="http://localhost:52798/MasterDataService.svc?wsdl=wsdl0"/>
<wsdl:types/>
<wsdl:binding name="CoopEndPoint" type="i0:IMasterDataService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="checkInterface">
<soap:operation soapAction="http://service.sc/IMasterDataService/checkInterface" style="document"/>
<wsdl:input>

...