EWS: NetworkCredential ist nicht mit ExchangeCredentials in F # kompatibel

8

Ich verwende gerne die Microsoft.Exchange.WebService API:

C # funktioniert gut

%Vor%

F # gibt den Fehler: Der Typ 'NetworkCredential' ist nicht kompatibel mit 'ExchangeCredential'

%Vor%

Ich dachte, dass es etwas mit der impliziten Konvertierung zu tun hat, die in der C # API definiert ist. Also habe ich versucht (: & gt;) und downcast (:? & gt;). 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. Beide wurden in VS 2015 getestet. In C # ist es .Net 4.5.2 und auch in F #, wenn es in der app.config

nachgeschlagen wird %Vor%

Und ich denke, die Verwendung von WebCredentials ist nicht der 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.

    
KCT 23.01.2016, 11:58
quelle

1 Antwort

7

Wie Sie bemerkt haben, definiert ExchangeCredentials eine implizite Konvertierung von NetworkCredentials nach ExchangeCredentials , weshalb Ihr Code in C # korrekt funktioniert. Beachten Sie, dass zwischen diesen beiden Dingen keine Vererbungsbeziehung besteht. Daher können Sie die Funktionen upcast ( :> ) und downcast ( :?> ) nicht verwenden.

Implizite Conversions werden in F # als statisches Member mit dem Namen op_Implicit angezeigt.

%Vor%     
TheInnerLight 23.01.2016, 13:41
quelle