내 메서드는 Outlook.MailItem
을 매개 변수로 사용합니다. MailItem 개체를 검사하고 설명서를 읽은 후 AddressEntry
을 반환하는 Sender
이라는 속성이 있음을 발견했습니다. 이 속성을 사용하려고 할 때 다음 오류가 발생했습니다 : Cannot resolve symbol 'Sender'
및 보낸 사람이 빨간색으로 강조 표시되었습니다. 구축을 위해 노력하고있는 강조 결과를 무시 :이 속성은 해결할 수 없지만 동적 캐스트를 통해 액세스 할 수있는 이유는 무엇입니까?
'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?)
가 이상한, 문서의 속성이 존재 말한다 내가 디버깅 할 때 난 값을 검사 할 수 있습니다. (디버깅 검사가 모든 System.__ComObject
년대에 큰되지 않도록 나는이 오래된 프로젝트를 VS2010를 사용해야하지만, 나는 Sender
의 값을 검사 할 수 있습니다, 그래서 존재한다.)
을 나는에 MailItem
캐스팅 그러나 때 dynamic
, 나는 아무 문제없이로서 다음과 보낸 사람에 액세스 할 수 있습니다 내가 잘못 여기서 뭐하는 거지
var sender = (AddressEntry)((dynamic)mailItem).Sender;
? 나는 현재 더 나은 설명이 부족하여 VS2010에 대해 비난하고 있습니다.
언어에 IIRC'dynamic'이 부분적으로 추가되어 그와 같은 IDispatch 객체가 일반 C# 클래스 인스턴스처럼 취급 될 수 있습니다. –
VS 2012 및 2014 ... mailItem.Sender'에서 제대로 작동하는지 확인할 수있는 것은 무엇입니까 (아마도 아무것도 아님). 올바른 네임 스페이스를 포함 시켰습니까? 'Using Microsoft.Office.Interop.Outlook;' – musefan
'AddressEntry' 인터페이스가'Sender'의 속성을 가지고 있지만'MailItem'의 속성을 가지고있는 것을 보지 못한 문서를 보면서 무엇인가 놓치고 있는지 확실하지 않습니다. 아마도 당신은'MailItem'으로 그것을 캐스팅하려 했겠습니까? – 12seconds