Asynclass 1.0.1
dotnet add package Asynclass --version 1.0.1
NuGet\Install-Package Asynclass -Version 1.0.1
<PackageReference Include="Asynclass" Version="1.0.1" />
paket add Asynclass --version 1.0.1
#r "nuget: Asynclass, 1.0.1"
// Install Asynclass as a Cake Addin #addin nuget:?package=Asynclass&version=1.0.1 // Install Asynclass as a Cake Tool #tool nuget:?package=Asynclass&version=1.0.1
Asynclass
Asynclass is a library that allows the developer to create projects using asynchronous constructors, following a Config-Init-Catch
pattern. The main objective is to expand asynchronous driven development to cover OOP concepts concisely.
Basic usage
With Asynclass, it is possible to create async constructors that can be called using the new
keyword. This allows asynchronous methods and features to be executed directly on the object's construction, acting as a "sugar" to reduce code, improve readability and make new ways to develop programs.
Async classes can be called as the following:
var currentWeather = await new WeatherInfo(DateTime.Now);
Console.WriteLine($"The current temperature is {currentWeather.Temperature}");
Console.WriteLine($"The current wind speed is {currentWeather.WindSpeed}");
Creating classes using the Config-Init-Catch
pattern:
using Asynclass;
using System;
class WeatherInfo : Async<WeatherInfo>
{
public double Temperature { get; set; }
public double WindSpeed { get; set; }
public WeatherInfo(DateTime dateTime)
{
Config(options =>
{
options.ThrowOnError = false;
options.RetryTimes = 5;
});
Init(async instance =>
{
var fullWeatherData = await _someWeatherProvider.GetFullData(dateTime);
instance = fullWeatherData.temperature;
instance = fullWeatherData.windSpeed;
});
Catch(errors =>
{
errros.ForEach(e => Console.WriteLine(e.Message));
Environment.Exit(0);
});
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. 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. |
-
net6.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.