Alterações de código após que estão de acordo com serviço Web Endpoints aos arquivos WSDL
Depois que você está de acordo com um ponto de extremidade de serviço Web implementado em um arquivo WSDL (linguagem WSDL), pode haver alterações nos arquivos de código seguinte associados à empresa:
O arquivo que implementa a classe de serviço Web.
Essa classe contém assinaturas de operação e qualquer código de corpo de método.Uma operação é um método de classe com o WebMethod atributo e outros relacionados a atributos.
Observação: Nenhuma alterar de código do método corpo s Quando você em conformidade com um implementou o ponto de extremidade.No entanto, o alterações descritas neste tópico pode causar corpo de método código compilar não mais.Portanto, revise seu código e identificar alterações que podem ser necessário para corrigir os erros do compilador.
Um ou mais arquivos de classe contêm definições de tipo personalizado.
As alterações podem incluir o seguinte:
Adding new operation signatures
Updating operation signatures
Removing WebMethod attributes from operation signatures
Updating operation attributes
Adding or renaming custom type definitions
Conforming only the first matching operations
Adding comments about changes to code files
A janela Detalhes do Serviço Web também refletirão as alterações apropriadas.As seções a seguir contêm mais informações sobre essas alterações.
Adicionando novas assinaturas de operação
Se o arquivo WSDL descreve uma nova operação, Visual Studio Adiciona a assinatura da operação e atributos a classe de serviço Web. Você pode identificar essa nova assinatura da operação, procurando o WebMethod atributo.
Observação: |
---|
Métodos sem de classe a WebMethod atributo são métodos que não sejam da Web, não as operações. Esses métodos não são incluídos quando estiver comparando operações.Para obter mais informações, consulte Updating Operation Signatures. |
MessageName parâmetro irá corresponder ao nome da operação no arquivo WSDL. Você pode encontrar o MessageName parâmetro na WebMethod atributo de assinatura da operação.
Observação: |
---|
Nova operação pode ter o mesmo nome sistema autônomo um membro de classe existente ( excluindo métodos que não sejam da Web ) .Nesse caso, Visual Studio Adiciona um ordinal ao nome do método da nova operação, tornando exclusivo. |
Por exemplo, suponha que a classe serviço Web contém um membro chamado "newCatalog".Se o arquivo WSDL descreve uma operação chamada "newCatalog", o nome do método da operação aparece sistema autônomo "newCatalog2" nessa classe.As linhas a seguir mostram o resultado depois que estão de acordo com esse arquivo WSDL:
[Visual Basic]
Public newCatalog As String
'''<remarks> [UserName::Date] This Web method was added after conforming this service to the WSDL file. </remarks>
<System.Web.Services.WebMethod(MessageName="newCatalog")> _
<System.Web.Services.Protocols.SoapDocumentMethod(Binding:="MyWebService")> _
Public Sub getCatalog2()
...
End Sub
[Visual C#]
public string newCatalog;
/// <remarks> [UserName::Date] This Web method was added after conforming this service to the WSDL file. </remarks>
[System.Web.Services.WebMethod(MessageName="newCatalog"), System.Web.Services.Protocols.SoapDocumentMethod(Binding = "MyWebService")]
public string newCatalog2()
{...}
Atualizando assinaturas de operação
Se o arquivo WSDL descreve uma operação que corresponde a uma operação na classe de serviço Web, Visual Studio Atualiza a assinatura de operação e seus atributos na classe. A lista a seguir descreve os critérios usados para fazer a correspondência de operações entre a classe de serviço Web e o arquivo WSDL. Exemplos mostrando esses critérios comparam o código de classe para uma operação de WSDL chamado "getCatalog" (com o mesmo nome de mensagem):
Uma operação clsistema autônomos "combina" se ele h sistema autônomo o mesmo nome de mensagem, mas não o mesmo nome de método sistema autônomo operação WSDL.
Observação: O MessageName atributo identifica o nome da mensagem da operação.
Por exemplo, a seguinte operação de classe corresponde à operação WSDL "getCatalog":
[System.Web.Services.WebMethod(MessageName = "getCatalog")] public void getNewCatalog()
Uma operação clsistema autônomos "combina" se ele h sistema autônomo nenhum nome de mensagem, mas h sistema autônomo o mesmo nome do método sistema autônomo operação WSDL.
Por exemplo, a seguinte operação de classe corresponde à operação WSDL "getCatalog":
[System.Web.Services.WebMethod()] public void getCatalog()
Uma operação de classe não é compatível "com" em caso afirmativo o mesmo nome de método, mas um nome de mensagem diferente sistema autônomo operação WSDL.
Por exemplo, a seguinte operação de classe não corresponde da operação WSDL "getCatalog":
[System.Web.Services.WebMethod(MessageName = "getGolfCatalog")] public void getCatalog()
Um método de classe não é considerado uma operação se ela tiver o mesmo nome de método, mas não possui um WebMethod atributo. Esse método é deixado inalterada.Em vez disso, uma nova assinatura de operação e os atributos correspondentes são adicionados à classe.
Por exemplo, o seguinte método de classe não corresponde a operação de WSDL "getCatalog" porque ele não tem umWebMethod atributo e está inalterada esquerda:
public void getCatalog()
Removendo atributos do WebMethod da operação assinaturas
Se a classe de serviço Web implementa uma operação não descritas no arquivo WSDL, Visual Studio Remove o WebMethod atributo e outros atributos correspondentes de que a operação na classe. A operação é alterado para um não-método Web.
Por exemplo, as linhas a seguir mostram uma operação com o seu WebMethod atributo e outros atributos correspondentes antes que ele está de acordo com um arquivo WSDL:
[Visual Basic]
<System.Web.Services.WebMethod()> _
<System.Web.Services.Protocols.SoapDocumentMethod(Binding:="myWebService")> _
Public Sub getCatalog()
...
End Sub
[Visual C#]
[System.Web.Services.WebMethod(), System.Web.Services.Protocols.SoapDocumentMethod(Binding = "myWebService")]
public void getCatalog()
{...}
As linhas a seguir mostram como a operação perde o WebMethod atributo e outros atributos depois está de acordo com um arquivo WSDL que descreve essa operação não é mais. A operação se torna um método que não sejam da Web:
[Visual Basic]
''' <remarks>[UserName::Date] The WebMethod attribute was removed after conforming this service to the WSDL file. This operation does not exist under the corresponding port type in the WSDL file. </remarks>
Public Sub getCatalog()
...
End Sub
[Visual C#]
/// <remarks>[UserName::Date] The WebMethod attribute was removed after conforming this service to the WSDL file. This operation does not exist under the corresponding port type in the WSDL file. </remarks>
public void getCatalog()
{...}
Atualizando serviço Web e atributos da operação
Se os atributos de classe de serviço Web ou operações não coincidirem com o arquivo WSDL, Visual Studio Atualiza-los na classe. Por exemplo:
O nome do serviço Web e o namespace podem ser atualizados.
Se o nome do serviço e espaço para nome da classe não estiverem sistema autônomo mesmas no arquivo WSDL, Visual Studio Atualiza-los. Visual Studio atualiza esses valores na classe sistema autônomo parte do WebServiceBinding atributo.
Cada nome de vinculação de operação é atualizado.
Se vinculação nome de cada operação na classe não for o mesmo que no arquivo WSDL, Visual Studio atualiza o nome da ligação. Ele atualiza esse valor na classe sistema autônomo parte de SoapDocumentMethod atributo.
A lista a seguir contém outros atributos que podem ser atualizados:
WebMethod
WebService
SoapDocumentService
SoapRpcMethod
SoapRpcService
Os atributos de usuário adicionado não serão alterados.
Adicionando ou renomeando definições de tipo personalizado
Assinaturas de operação adicionadas a partir de um arquivo WSDL podem fazer referência a tipos personalizados.Depois que o aplicativo associado é implementado, um ou mais arquivos de classe podem aparecer em sua solução.Esses arquivos contêm as definições de tipo correspondente.Seus nomes de arquivo, use o seguinte formato:
"<servicename><customtypename>. <fileextension>"
Observação: |
---|
A extensão do arquivo depende do linguagem de implementação. |
Nesses arquivos, os espaços para nome que contenha essas definições de tipo, use o seguinte formato:
Namespace <DefaultNamespace>.<ServiceName>CustomTypes
Por exemplo, suponha que um arquivo WSDL descreve um serviço chamado "MyService".Esse serviço fornece uma operação que faz referência a um tipo personalizado chamado "MyCustomType".
Quando você está de acordo com um ponto de extremidade de serviço Web ao arquivo WSDL, a assinatura da operação recém-adicionado também faz referência a esse tipo personalizado.O nome do tipo de arquivo é "MyServiceMyCustomType.vb" ou "MyServiceMyCustomType.cs", dependendo se o aplicativo associado é implementado no Visual Basic ou Visual translation from VPE for Csharp.Nesse tipo de arquivo, o namespace e a definição de tipo aparecem da seguinte maneira:
[Visual Basic]
Namespace ApplicationName.MyServiceCustomTypes
Public Class MyCustomType
...
End Class
End Namespace
[Visual C#]
namespace ApplicationName.MyServiceCustomTypes
{
public class MyCustomType
{...}
}
Quando você está de acordo com um ponto de extremidade de serviço Web a um arquivo WSDL, alterações diferentes ocorrem nesses arquivos dependendo das condições a seguintes:
sistema autônomo nomes de serviço são o mesmo; no entanto, nenhuma definição de tipo existentes têm o mesmo nome de tipos descritos no arquivo WSDL.
Nesse cenário, novos arquivos de tipo são adicionados à solução.Esses arquivos contêm definições para os novos tipos descritos no arquivo WSDL.Essas definições aparecem dentro de espaços para nomes com o nome do serviço.
sistema autônomo nomes de serviço são sistema autônomo mesmos; no entanto, um ou mais definições de tipo existentes tiverem o mesmo nome sistema autônomo tipos descritos no arquivo WSDL.
Nesse cenário, Visual StudioRenomeia a definição de tipo existentes anexando o texto "_Obsolete" ao nome do tipo de. Visual Studio Adiciona a nova definição de tipo para o mesmo tipo de arquivo e namespace sistema autônomo o tipo anteriormente conflitante. Operações para este serviço Web, em seguida, irão referenciar o novo tipo em vez do tipo anteriormente conflitante.
Observação: Se o espaço para nome já contém um tipo renomeado com "_Obsolete" string , Visual Studio acrescenta um ordinal esta seqüência para produzir um nome exclusivo.
Por exemplo, suponha que o arquivo de tipo contém um tipo chamado "myCustomType".Visual StudioRenomeia "myCustomType_Obsolete" se o arquivo WSDL também descreve um tipo com o mesmo nome. Visual Studio em seguida, adiciona a definição de tipo para o tipo de arquivo.
Se o tipo de arquivo contém "myCustomType_Obsolete" e "myCustomType"Visual StudioRenomeia "myCustomType" para "myCustomType_Obsolete2". Visual Studio Adiciona a definição de tipo para o arquivo de tipo.
Os nomes de serviço diferem.
Nesse cenário, Visual Studio não modifica qualquer um dos arquivos de tipo existente. Em vez disso, Visual Studio Adiciona novos arquivos do tipo com o novo nome de serviço para a solução. Esses arquivos contêm definições para tipos descritos no arquivo WSDL.Essas definições aparecem dentro de namespaces que usar o novo nome de serviço.
Observação: Serv Web classe de gelo também será atualizado com o novo serviço n ome .
Para obter mais informações sobre tipos personalizados, consulte Web Service Endpoints Baseados em Arquivos WSDL.
Em conformidade com o primeira somente operações correspondentes
Uma classe de serviço Web pode implementar várias operações que correspondam a uma operação descrita no arquivo WSDL.Nesse cenário, somente a primeira assinatura operação correspondente estará de acordo com o arquivo WSDL.As assinaturas de operação correspondente restantes não serão alterados.
Para corrigir essa condição, certifique-se de que a operação correta de assinatura foi conformed.Se necessário, modifique o Outros correspondência de operações para evitar duplicatas futuras.
Adicionando comentários sobre alterações em arquivos de código
Visual Studio também adicionará comentários Geral que descrevem essas alterações para os arquivos de código. Esses comentários incluem a data e o nome do usuário que fez essas alterações.
Consulte também
Tarefas
Como: Está de acordo com pontos finais do serviço Web a arquivos WSDL