Meine Methode benötigt einen Outlook.MailItem
als Parameter. Nachdem ich das MailItem-Objekt untersucht und die Dokumentation gelesen hatte, bemerkte ich, dass es eine Eigenschaft namens Sender
hatte, die eine AddressEntry
zurückgibt. Wenn ich diese Eigenschaft verwenden wollte, bekam ich die folgende Fehlermeldung: Cannot resolve symbol 'Sender'
, und Absender wurde rot hervorgehoben. Der Versuch, die Hervorhebung Ergebnisse in zu bauen und zu ignorieren:Warum kann diese Eigenschaft nicht aufgelöst werden, aber zugänglich, wenn ich über einen dynamischen Cast gehe?
'Microsoft.Office.Interop.Outlook.MailItem' does not contain a definition for 'Sender' and no extension method 'Sender' accepting a first argument of type 'Microsoft.Office.Interop.Outlook.MailItem' could be found (are you missing a using directive or an assembly reference?)
Seltsam, sagt die Dokumentation Eigentum existieren und wenn ich mich debuggen kann sogar den Wert überprüfen. (Ich habe auf diesem alten Projekt VS2010 verwenden, um die Debug-Inspektion nicht groß mit allen System.__ComObject
‚s ist, aber ich kann den Wert von Sender
überprüfen, so dass es existiert.)
Allerdings, wenn ich die MailItem
goss dynamic
, kann ich den Sender zugreifen, als ohne Probleme folgt:
var sender = (AddressEntry)((dynamic)mailItem).Sender;
Was mache ich falsch hier? Ich mache derzeit VS2010 dafür verantwortlich, dass es keine bessere Erklärung gibt.
IIRC 'dynamic' wurde der Sprache teilweise hinzugefügt, um zu ermöglichen, dass' IDispatch'-Objekte wie dieses als normale C# -Klasseninstanzen behandelt werden. –
Für was es wert ist (vielleicht nichts) Ich kann bestätigen, es funktioniert gut in VS 2012 und 2014 ... 'mailItem.Sender'. Haben Sie den richtigen Namespace angegeben? 'Verwenden von Microsoft.Office.Interop.Outlook;' – musefan
Nicht sicher, ob ich etwas vermisse, wenn ich die Dokumentation ansehe, die ich "AddressEntry" -Schnittstelle nicht sehe, habe eine Eigenschaft von 'Sender', aber' MailItem' tut es. Vielleicht wollten Sie es als 'MailItem' darstellen? – 12seconds