2011-01-08 11 views
3

Dies ist die Webservice-Methode imehrdeutiger Verweis in Stream-

habe
LoadImageFromDB(int ID, ref Stream streamReturnVal) 

Ich habe diese auf der Oberseite des Abschnitts using Stream = System.IO.MemoryStream;

Jedes Mal, wenn ich diese Methode verbrauchen (Update Web-Referenz) von einer Web-Anwendung, Ich bekomme diesen Fehler

'Stream' is an ambiguous reference between 'System.IO.Stream' and 'WebReference.Stream' 

Irgendwelche Gedanken?

In WebService-Klasse

using Stream = System.IO.MemoryStream; 
LoadImageFromDB(int ID, ref Stream streamReturnVal); 

In Web-Seite, wo oben webservice verbraucht wird:

WebReference verwendet wird;

Stream streamReturnVal = null; 
streamReturnVal = new MemoryStream(); 

WebserviceInstanceName.LoadImageFromDB(100,streamReturnVal); 

PS: Stream - ist von System.IO.Stream

+0

a * mit Verwendung von Strom = System.IO.MemoryStream; * hilft nicht viel, es sei denn, Sie entfernen * System.IO mit * als auch. –

Antwort

2

Das wird also verursacht, wenn Sie zwei Namespaces haben, die Typen mit demselben Name in einem einzelnen Codeabschnitt enthalten.

So dieser Abschnitt

using Stream = System.IO.MemoryStream; 
LoadImageFromDB(int ID, ref Stream streamReturnVal); 

sollte explizit definieren, welche Art von Stream geben wird.

Es sollte wohl so etwas wie folgt aussehen

using Stream = System.IO.MemoryStream; 
LoadImageFromDB(int ID, ref System.IO.Stream streamReturnVal); 
+0

nicht Objekte, sondern Typen (Klassen, enums, Strukturen usw.) –

+0

@msarchet - Danke, ich werde Sie wissen lassen, nachdem ich getestet habe. – Sharpeye500

+0

@Pauli, das ist was ich meinte, das repariere das jetzt – msarchet

0

bewegen Versuchen die using Stream = System.IO.MemoryStream in Ihrem Namensraum-Deklaration ist.

+0

Ich habe Stream = System.IO.MemoryStream in meinen Webservices verwendet. – Sharpeye500

+0

Können Sie die relevanten Teile Ihrer Quelldatei veröffentlichen? Außerdem möchte ich klarstellen, dass ich meine 'using'-Anweisung von außerhalb (oder oberhalb) des Namespaces, in dem Sie sie normalerweise einfügen, in das Namespace verschieben soll (innerhalb des Namespace-Blocks). – HackedByChinese

+0

Bitte überprüfen Sie, ich habe den obigen Code hinzugefügt. – Sharpeye500

0

Haben Sie WebReference? Das kann ein Problem verursachen.

+0

Was kann man hier machen? – Sharpeye500

+0

@ sharpeye500: Wenn Ihr Aliasing Ambiguität erzeugt, haben Sie keine andere Wahl - Alias ​​umbenennen oder Mehrdeutigkeiten mit vollständig qualifizierten Klassennamen auflösen (include namespaces). – Schultz9999

+0

Bitte helfen Sie mir zu verstehen, indem Sie durch den Code von oben gehen. – Sharpeye500

Verwandte Themen