Domanda

Sto lavorando a un progetto in cui ho 2 servizi Web che richiedono la stessa entità. I 2 servizi Web si trovano sullo stesso server, quindi sul back-end condividono le stesse classi.

Sul lato front-end, il mio codice consuma entrambi servizi web e vede le entità di entrambi i servizi come separate (in spazi dei nomi diversi), quindi non posso usare l'entità attraverso entrambi i servizi.

/ p>

Qualcuno sa come consentire che funzioni in .NET 2.0?

L'ho fatto con la mia entità:

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

Sperando che il mio IDE possa in qualche modo "conoscere". che la classe è la stessa su entrambi i servizi Web in modo da non creare entità separate per entrambe le classi, ma senza fortuna.

È possibile farlo con i servizi Web .NET 2.0?

È stato utile?

Soluzione

Penso che non puoi farlo dall'interno di VS ma puoi usare manualmente l'utilità wsdl.exe in questo modo:

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

Nota l'opzione / sharetypes che attiva la funzione di condivisione del tipo. Questa funzione crea un file di codice con una definizione di tipo singolo per tipi identici condivisi tra servizi diversi (lo spazio dei nomi, il nome e la firma del filo devono essere identici).

Ulteriori informazioni:

Altri suggerimenti

Non sono sicuro dei dettagli dell'implementazione con .NET 2.0, ma credo che ciò che vuoi fare sia mettere le classi comuni in un file XSD separato e fare riferimento ad esso all'interno dei tuoi due WSDL. In questo modo, i tipi comuni hanno lo stesso spazio dei nomi tra i due servizi.

Ora, come lo fai in .NET 2.0, non potrei darti i dettagli su ...

Puoi controllare lo spazio dei nomi dell'entità? Assicurarsi che sia lo stesso in entrambi i servizi Web.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top