2012-02-15 12 views
5

Quando si tenta di creare un'istanza di un servizio, sto diventando unservizi Web: metodo non può essere riflessa eccezione

"metodo non può essere riflessa"

eccezione. Scavando più in profondità nelle eccezioni interne rivela:

"Tipi 'WebServiceClient.com.compamy.string1' e 'WebServiceClient.com.company.string' entrambi usano il nome del tipo XML, 'stringa', da namespace 'http://www.w3.org/2001/XMLSchema'. Utilizza gli attributi XML per specificare un nome XML univoco e/o uno spazio dei nomi per il tipo . "

Cosa vuole da me questa dannata cosa? È il codice generato automaticamente da VS2010 ... perché devo giocherellare con esso?

Qui ci sono i due tipi:

[GeneratedCode("System.Xml", "4.0.30319.233")] 
[Serializable] 
[DebuggerStepThrough] 
[DesignerCategory("code")] 
[XmlType(TypeName = "string", Namespace = "http://www.w3.org/2001/XMLSchema")] 
[XmlRoot("FileName", Namespace = "http://company.com/api3/Content/Download/", IsNullable = true)] 
public partial class string1 : SoapHeader 

e

[GeneratedCode("System.Xml", "4.0.30319.233")] 
[Serializable] 
[DebuggerStepThrougt] 
[DesignerCategory("code")] 
[XmlTypeAttribute(Namespace = "http://www.w3.org/2001/XMLSchema")] 
[XmlRootAttribute("SessionKey", Namespace = "ns", IsNullable = true)] 
public partial class @string : SoapHeader 
+0

Perché non denominarlo "StringHeader: SoapHeader'? – abatishchev

risposta

7

ho trovato una soluzione, ma non riesco a spiegare il motivo per cui si sta lavorando. Ho semplicemente rimosso tutti gli attributi di mappatura dei tipi da tutti i metodi e non ho più errori.

Lines rimossi:

[XmlType(TypeName = "string", Namespace = "http://www.w3.org/2001/XMLSchema")] 

Se qualcuno può spiegare Vorrei davvero apprezzare!

+0

Sei venuto a qualsiasi soluzione sul perché si è verificato, ho lo stesso problema ma con JSON. – Marcus

+1

Ho avuto lo stesso problema quando stavo chiamando un webservice che è stato scritto in java (non sono sicuro se ciò che conta) da un client C#, rimosso anche gli attributi di mappatura del tipo e ha funzionato! non riesco davvero a capire perché! –

+1

Hai detto il motivo per cui non funziona semplicemente riaffermando l'errore e puoi capire perché negli attributi dove i tuoi spazi dei nomi sono diversi. Lo spazio dei nomi che si aspetta l'oggetto è in attesa di un tipo di stringa, o almeno quando serializzato il nodo sarà "stringa". Ho avuto sia il tipo sia un errore simile a quello del tuo spazio dei nomi. Avevo provato a inviare il mio xml con "w3" come fossi, poi con una libreria di sapone disponibile, e alla fine ha funzionato quando ho fatto riferimento all'URL dell'api dove wsdl è ... se hai usato un wsdl per ottenere lo schema magari provarlo – user1040975

Problemi correlati