mi piace utilizzare l'API Microsoft.Exchange.WebService:EWS: NetworkCredential non è compatibile con ExchangeCredentials in F #
C# funziona bene
ExchangeService service = new ExchangeService(userData.Version);
service.Credentials = new NetworkCredential(userData.EmailAddress, userData.Password);
F # dà l'errore: Il tipo 'NetworkCredential' non è compatibile con '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
ho pensato che ha qualcosa a che fare con la conversione implicita che è definito nel C# API. così ho provato (:>) e downcast (:?>). Ho provato a renderlo esplicito (nuovo NetworkCredential ...: ExchangeCredentials) e ho controllato le dll di riferimento come ho usato in C# nuget direttamente e in F # paket. Entrambi provati in VS 2015. In C# è .Net 4.5.2 e in F #, anche se è il modo corretto di guardare in su nel app.config
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
E credo che usando WebCredentials non sia corretta modo. Voglio usare un SecureString e non una stringa e se funziona in C#. Quindi è più probabile che ho fatto qualcosa di sbagliato con la sintassi F # che vorrei capire.
Grazie per il vostro suggerimento. Ma il problema era qualcos'altro. Vedere la soluzione di TheInnerLight di seguito. – KCT