FInvoke 0.3.0
dotnet add package FInvoke --version 0.3.0
NuGet\Install-Package FInvoke -Version 0.3.0
<PackageReference Include="FInvoke" Version="0.3.0" />
<PackageVersion Include="FInvoke" Version="0.3.0" />
<PackageReference Include="FInvoke" />
paket add FInvoke --version 0.3.0
#r "nuget: FInvoke, 0.3.0"
#:package FInvoke@0.3.0
#addin nuget:?package=FInvoke&version=0.3.0
#tool nuget:?package=FInvoke&version=0.3.0
CSharp function wrapper 
Simple FSharp wrapper for CSharp methods.
Wrapping methods which can throw an Exception.
Import FInvoke.Result
module.
open FInvoke.Result
Wrapping methods with void
as a return type:
let deleteFile: string -> Result<unit, Exception> = invoke File.Delete
let test () =
match deleteFile "file.ext" with
| Ok result -> result
| Error error -> Debug.Fail(error.Message)
Wrapping methods without arguments:
let getRandomFileName: unit -> Result<string, Exception> = invoke Path.GetRandomFileName
let test () =
match getRandomFileName () with
| Ok name -> Debug.Assert(name.Contains("."))
| Error error -> Debug.Fail(error.Message)
Wrapping methods with one argument:
let getFileName: string -> Result<string, Exception> = invoke Path.GetFileName
let test () =
match getFileName @"root\file.ext" with
| Ok name -> Debug.Assert("file.ext" = name)
| Error error -> Debug.Fail(error.Message)
Wrapping methods with two arguments:
let combine2: string -> string -> Result<string, Exception> = invoke2 Path.Combine
let test () =
match combine2 "root" "file.ext" with
| Ok name -> Debug.Assert(@"root\file.ext" = name)
| Error error -> Debug.Fail(error.Message)
Wrapping methods with three arguments:
let combine3: string -> string -> string -> Result<string, Exception> = invoke3 Path.Combine
let test () =
match combine3 "root" "folder" "file.ext" with
| Ok name -> Debug.Assert(@"root\folder\file.ext" = name)
| Error error -> Debug.Fail(error.Message)
And so on...
Wrapping methods which don't throw an Exception, or you don't care.
Import FInvoke.Object
module.
open FInvoke.Object
Wrapping methods with void
as a return type:
let deleteFile: string -> unit = invoke File.Delete
let result = deleteFile "file.ext"
Debug.Assert(() = result)
Wrapping methods without arguments:
let getRandomFileName: unit -> string = invoke Path.GetRandomFileName
let name = getRandomFileName ()
Debug.Assert(name.Contains("."))
Wrapping methods with one argument:
let getFileName: string -> string = invoke Path.GetFileName
let name = getFileName @"root\file.ext"
Debug.Assert("file.ext" = name)
Wrapping methods with two arguments:
let combine2: string -> string -> string = invoke2 Path.Combine
let name = combine2 "root" "file.ext"
Debug.Assert(@"root\file.ext" = name)
Wrapping methods with three arguments:
let combine3: string -> string -> string -> string = invoke3 Path.Combine
let name = combine3 "root" "folder" "file.ext"
Debug.Assert(@"root\folder\file.ext" = name)
And so on...
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- FSharp.Core (>= 9.0.201)
-
.NETStandard 2.1
- FSharp.Core (>= 9.0.201)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on FInvoke:
Package | Downloads |
---|---|
Fini
Simple INI parser and writer |
GitHub repositories
This package is not used by any popular GitHub repositories.