Tôi thích sử dụng API Microsoft.Exchange.WebService:EWS: NetworkCredential không tương thích với ExchangeCredentials trong F #
C# hoạt động tốt
ExchangeService service = new ExchangeService(userData.Version);
service.Credentials = new NetworkCredential(userData.EmailAddress, userData.Password);
F # cung cấp cho các lỗi: Các loại 'NetworkCredential' không phải là tương thích với '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
Tôi nghĩ rằng nó có liên quan đến chuyển đổi ngầm định được xác định trong API C#. vì vậy tôi đã thử (:>) và downcast (:?>). Tôi đã cố gắng để làm cho nó explicite (mới NetworkCredential ...: ExchangeCredentials) và tôi đã kiểm tra các dlls tham chiếu như tôi được sử dụng trong C# nuget trực tiếp và trong F # paket. Cả hai thử nghiệm trong VS 2015. Trong C# nó Net 4.5.2 và trong F #, quá nếu đó là cách chính xác để nhìn nó trong app.config
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
Và tôi đoán sử dụng WebCredentials là không chính xác đường. Tôi muốn sử dụng một SecureString và không phải là một chuỗi và nếu làm việc trong C#. Vì vậy, có nhiều khả năng tôi đã làm điều gì đó sai với cú pháp F # mà tôi muốn hiểu.
Cảm ơn bạn đã gợi ý. Nhưng vấn đề là cái gì khác. Xem giải pháp từ TheInnerLight bên dưới. – KCT