-
Notifications
You must be signed in to change notification settings - Fork 5
Commons.Utils
Basic common utility for .NET development.
Commons.Utils is delivered as a part of nuget package "Commons". You can dowlord the package from nuget.org
Or you can directly install from nuget console by typing following commands:
PM>Install-Package Commons
A utility for creating objects and accessing object properties by reflection
- Create a new object with default constructor
var simpleType = typeof(Simple);
var invoker = Reflector.GetInvoker(simpleType);
var simple = (Simple)invoker.NewInstance();- Accessing object properties
var simple = new Simple
{
FieldA = "ValueA",
FieldB = 1912,
FieldC = 1412.2,
FieldD = true
};
var invoker = Reflector.GetInvoker(typeof(Simple));
var fa = (string)invoker.GetProperty(simple, "FieldA");
var fb = (int)invoker.GetProperty(simple, "FieldB");
var fc = (double)invoker.GetProperty(simple, "FieldC");
var fd = (bool)invoker.GetProperty(simple, "FieldD");-
Atomic Primitives
The class libary provides the following atomic primitives for concurrent computing. Those .NET structures enable the compare and swap (CAS) or compare exchange capability.
-
AtomicBool
-
AtomicDouble
-
AtomicFloat
-
AtomicInt32
-
AtomicInt64
-
AtomicReference
-
AtomicMarkableReference, a reference type with a flag incidating the state of the reference. A C# counterpart of java.util.concurrent.atomic.AtomicMarkableReference
-
-
Supported hash functions
Murmur hash 32bit
Fnv hash
-
Functors
-
Equator
-
Closure
-
Transformer
-
Factory
-
-
Guarder, A common utility to check parameters