Mehrdeutigkeit in Word-Interop-Code [duplizieren]

8

Ich habe vor kurzem eine Frage zum Lesen von Word-Dateien hier gestellt.

Die App läuft gut, aber ich bekomme diese Warnmeldung;

  

Warnung Mehrdeutigkeit zwischen Methoden        'Microsoft.Office.Interop.Word._Document.Close (ref-Objekt, ref-Objekt, ref-Objekt)'        und Nicht-Methode 'Microsoft.Office.Interop.Word.DocumentEvents2_Event.Close'. Verwenden        Methodengruppe.

Es scheint eine gewisse Unklarheit von einigen, die Namespaces verwenden, zu geben, und ich würde gerne wissen, wie man das löst. Obwohl die App läuft, möchte ich Warnungen / Fehler minimieren.

Ich habe den folgenden Code für die Klasse angegeben; Die Zeile, auf die es sich bezieht, sind diese beiden Zeilen.

%Vor%

Der ganze Code:

%Vor%     
IEnumerable 18.10.2012, 02:08
quelle

3 Antworten

19

Um die Mehrdeutigkeit zu beheben, verwenden Sie:

%Vor%     
Avi Shmidman 18.10.2012, 02:22
quelle
6

Versuchen Sie, Ihre docs zuerst zu übertragen:

%Vor%

Das Microsoft.Office.Interop.Word.Document interface implementiert sowohl das DocumentEvents2_Event und _Document Schnittstellen. Jeder hat eine enge Methode, und der Compiler hat Schwierigkeiten zu bestimmen, was Sie meinen.

Alternativ könnten Sie Ihre docs -Variable als _Document an erster Stelle deklarieren:

%Vor%

Dieselbe Auflösung kann für Mehrdeutigkeiten in wordObject verwendet werden, indem sie in _Application umgewandelt wird.

    
goric 18.10.2012 02:22
quelle
1

Die vorgeschlagenen Lösungen funktionieren gut, aber es hinterlässt ReSharper mit einem mehrdeutigen Aufruffehler, den Sie nicht loswerden können, außer dem alten "Ignoriere Fehler" -Trick im R # -Fehlerdialog, obwohl der Compiler glücklich genug ist damit.

Ich konnte nicht wirklich eine gute Lösung von R # bekommen und es kommt nur an ein paar Stellen, so dass die schlechteste Antwort, die ich gefunden habe, funktioniert und weder Visual Studio noch R # Fehler erzeugt eine Dynamik.

%Vor%

Nicht ideal, aber ich halte meine Nase und benutze sie. Wenn Sie es mehr als einmal verwenden möchten, können Sie es natürlich in einer dynamischen Variable speichern. Sie könnten technisch die Dynamik für alles verwenden (es ist nur spät gebundene COM), aber Sie würden alle intelliSense verlieren, so dass ich es nur für die wenigen Methoden und Ereignisse verwenden, wo es auftaucht.

    
Wade Hatler 29.12.2014 23:18
quelle

Tags und Links