FSC-SimpleSingleton
1.0.0
dotnet add package FSC-SimpleSingleton --version 1.0.0
NuGet\Install-Package FSC-SimpleSingleton -Version 1.0.0
<PackageReference Include="FSC-SimpleSingleton" Version="1.0.0" />
paket add FSC-SimpleSingleton --version 1.0.0
#r "nuget: FSC-SimpleSingleton, 1.0.0"
// Install FSC-SimpleSingleton as a Cake Addin #addin nuget:?package=FSC-SimpleSingleton&version=1.0.0 // Install FSC-SimpleSingleton as a Cake Tool #tool nuget:?package=FSC-SimpleSingleton&version=1.0.0
FSC.SimpleSingleton
SimpleSingleton is a thread-safe singleton pattern implementation in C# that allows registration and retrieval of singleton instances of any type. It ensures that only one instance of a particular type can be created and accessed at a time, providing a globally accessible point of access for these instances.
Explanations:
Gets the singleton instance of a type, if it exists.
SimpleSingleton.InstanceOf<T>() : T (Instance)
Determines whether a singleton instance of a type exists.
SimpleSingleton.HasInstanceOf<T>() : bool
Registers a singleton instance of a type.
SimpleSingleton.RegisterInstance<T>(T instance) : bool
Unregisters a singleton instance of a type.
SimpleSingleton.UnregisterInstanceOf<T>() : bool
Returns a list of all instances registered in the SimpleSingleton.
SimpleSingleton.GetAllInstances() : List<object>
Code example:
using System.Text;
using FSC.Singleton;
namespace Test
{
internal static class Program
{
static void Main(string[] args)
{
// Create instances of StringBuilder and TestClass
StringBuilder sbInstance = new StringBuilder();
TestClass tcInstance = new TestClass();
// Register the instances
bool sbRegistered = SimpleSingleton.RegisterInstance(sbInstance);
bool tcRegistered = SimpleSingleton.RegisterInstance(tcInstance);
// Add the text "Hello World" to the StringBuilder instance
StringBuilder? sb = SimpleSingleton.InstanceOf<StringBuilder>();
bool sbAppended = sb?.Append("Hello World ") != null;
// Get the content of the StringBuilder and the number of TestClass
string sbContent = sb?.ToString() ?? string.Empty;
int tcNumber = SimpleSingleton.InstanceOf<TestClass>()?.Number ?? 0;
// Output the content and number
string output = $"{sbContent}{tcNumber}";
Console.WriteLine(output);
// Unregister the instances
bool sbUnregistered = SimpleSingleton.UnregisterInstanceOf<StringBuilder>();
bool tcUnregistered = SimpleSingleton.UnregisterInstanceOf<TestClass>();
// Output success or failure messages
Console.WriteLine(sbRegistered && tcRegistered ? "Instances successfully registered" : "Error registering instances");
Console.WriteLine(sbAppended ? "Text successfully appended" : "Error appending text");
Console.WriteLine(sbUnregistered && tcUnregistered ? "Instances successfully unregistered" : "Error unregistering instances");
}
}
internal class TestClass
{
internal int Number => 24;
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. 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 is compatible. 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. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
.NET Framework | net46 is compatible. net461 was computed. net462 was computed. net463 was computed. net47 is compatible. net471 was computed. net472 was computed. net48 is compatible. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6
- No dependencies.
-
.NETFramework 4.7
- No dependencies.
-
.NETFramework 4.8
- No dependencies.
-
.NETStandard 2.1
- No dependencies.
-
net6.0
- No dependencies.
-
net7.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.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 198 | 3/16/2023 |
First Release