Pergunta

Eu estou trabalhando em um projeto onde eu tenho 2 serviços de web que precisam da mesma entidade. Os 2 serviços web estão no mesmo servidor para o back-end, eles compartilham as mesmas classes.

No lado do front-end, meus consome código ambos serviços web e vê as entidades de ambos os serviços como separado (em diferentes namespaces), então não posso usar a entidade em ambos os serviços.

Alguém sabe de uma maneira de permitir que isso trabalho no .NET 2.0?

Eu fiz isso com a minha entidade:

[XmlType(TypeName = "Class1", Namespace = "myNamespace")]
public class Class1
{
    public int field;
}

Na esperança de que minha IDE de alguma forma "sabe" que a classe é o mesmo em ambos os serviços web para que ele não iria criar entidades separadas para ambas as classes, mas sem sorte.

Isso é possível fazer com serviços da web .NET 2.0?

Foi útil?

Solução

Eu acho que você não pode fazer isso de dentro VS mas você pode usar manualmente o utilitário wsdl.exe assim:

wsdl.exe /sharetypes http://localhost/MyService1.asmx?wsdl http://localhost/MyService2.asmx?wsdl

Observe a opção /sharetypes que ativa o recurso tipo de compartilhamento. Este recurso cria um arquivo de código com uma única definição de tipo para tipos idênticos partilhados entre os diferentes serviços (o namespace, nome e assinatura fio devem ser idênticos).

Mais informações:

Outras dicas

Eu não tenho certeza sobre os detalhes de implementação com .NET 2.0, mas acredito que o que você quer fazer é colocar as classes comuns em um arquivo XSD separado e se referem a ele de dentro de seus dois do WSDL. Desta forma, os tipos mais comuns têm o mesmo namespace entre os dois serviços.

Agora, como você faz isso no .NET 2.0 eu não poderia dar-lhe os detalhes sobre ...

É possível verificar o namespace da entidade? Certifique-se de que é a mesma em ambos os serviços web.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top