Ich mag die Microsoft.Exchange.WebService API verwenden:EWS: NetworkCredential nicht kompatibel mit ExchangeCredentials in F #
C# funktioniert
ExchangeService service = new ExchangeService(userData.Version);
service.Credentials = new NetworkCredential(userData.EmailAddress, userData.Password);
F # gibt den Fehler: Der Typ 'NetworkCredential' ist nicht kompatibel mit ‚ExchangeCredential‘
open System
open Microsoft.Exchange.WebServices.Data
open System.Net
[<EntryPoint>]
let main argv =
let connectToService userData =
let service = new ExchangeService(userData.Version)
do
service.Credentials <- new NetworkCredential(userData.EmailAddress, userData.Password)
service.Url <- userData.AutodicoverUrl
0
ich dachte, es hat etwas mit impliziter Konvertierung zu tun hat, die in dem C# API definiert ist. Also habe ich versucht (:>) und downcast (:?>). Ich habe versucht, es explizit zu machen (neues NetworkCredential ...: ExchangeCredentials) und ich habe die referenzierten DLLs überprüft, wie ich in C# nuget direkt und in F # paket verwendet habe. Sowohl in VS getestet 2015. In C# ist es .Net 4.5.2 und in F #, auch wenn es der richtige Weg ist es in der app.config
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
zu sehen Und ich denke, WebCredentials verwendet, ist nicht die richtige Weg. Ich möchte einen SecureString und keine Zeichenfolge verwenden und funktioniert in C#. Es ist also wahrscheinlicher, dass ich etwas falsch mit der F # -Syntax gemacht habe, die ich gerne verstehen würde.
Vielen Dank für Ihren Hinweis. Aber das Problem war etwas anderes. Siehe Lösung von TheInnerLight unten. – KCT