.NET Portable Cast Convert Transform

An easy-to-use, portable, tested, documented, serializable, thread-safe, strongly typed library for changing between unrestricted, arbitrary data types

Install-Package Core.Cast-Transform-Convert -Version
dotnet add package Core.Cast-Transform-Convert --version
paket add Core.Cast-Transform-Convert --version
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

=== Key Features ===

-Central thread-safe pool of converting functions
-Data Encapsulation
-Add converters at runtime or compile-time
-Consistent exception behavior
-Optional functions following the "Try" convention of .NET
-Instant improvement of source-code readability and maintainability
-Low overall performance impact
-Little to no learning curve
-Independent, portable library


### Changelog with the most recent changes

* 61 seconds ago  (HEAD -> master, origin/master, origin/HEAD) Travis: added additional null checks due to Mono reflection shortcoming (Lorenz Lo Sauer)
* 18 minutes ago  Tests: Segmented ConverterCollection into smaller units; Travis: remove dispose-runner option; (Lorenz Lo Sauer)
* 72 minutes ago  Travis: fix for missing instance due to test-instance disposal (Lorenz Lo Sauer)
* 3 hours ago  Tests: Added missing dipose-call (Lorenz Lo Sauer)
* 3 hours ago  Tests: added comprehensive test evalutation using the 'dynamc ' collection setting (Lorenz Lo Sauer)
* 3 hours ago  Tests: added test scenariors to check the functionality of the deferred  AddBuilder class (Lorenz Lo Sauer)
* 3 hours ago  Tests: Added crucial test for probing the intregrity of the ConverterCollection (Lorenz Lo Sauer)
*    3 hours ago  Merge branch 'master' of (Lorenz Lo Sauer)
| * 5 days ago  Readme: added stackoverflow flair-theme [ci skip] (Lorenz Lo Sauer)
* | 3 hours ago  Tests: Moved two tests from ConvertTo and added separate, advanced  tests for CastTo; (Lorenz Lo Sauer)
*    13 days ago  Merge branch 'master' of (Lorenz Lo Sauer)
| * 13 days ago  appveyor: added powershell scripts to the set of monitored build-files (Lorenz Lo Sauer)
* | 13 days ago  appveyor: added powershell scripts to the set of monitored build-files (Lorenz Lo Sauer)
* 13 days ago  Nuget packaging: fixed missing dynamic build-path in the nuspec file (Lorenz Lo Sauer)
* 13 days ago  Tests: Added new tests to the csproj; Added a direct csproj reference to the TypeCast library (Lorenz Lo Sauer)
* 13 days ago  Tests: Added tests for custom NumberFormatInfo based conversions [ci skip] (Lorenz Lo Sauer)
* 13 days ago  Improved: Added a new ConverterCollectionCause to the exception enumeration list; Better handling of a missing assembly exception during initialization (Lorenz Lo Sauer)
* 13 days ago  Improved: Renamed variable to better reflect its purpose [ci skip] (Lorenz Lo Sauer)
* 13 days ago   Improved: Allow Disambiguates when the ConverterMethodAttribute has a Name property set (Lorenz Lo Sauer)
* 13 days ago  Improved: Better creation of Standard Converters, designated with object as Argument-Type [ci skip] (Lorenz Lo Sauer)
* 13 days ago  Tests: Added a CaptureDataException for throwing data-objects at a desired point outside a method for analysis [ci skip] (Lorenz Lo Sauer)
* 13 days ago  Improved: Cleaned up unecessary code-lines (Lorenz Lo Sauer)


### Getting started in 4 steps

1. *Install* with the <a href="" target="_blank">NuGet Package manager</a>: `PM> Install-Package Core.TypeCast`.  
2. *Add the namespace* to your top-listed using directives: `using Core.TypeCast;`.
3. *Create a class* with one or more methods: `class MyConverter { ... int MyConverter(string argument) ... }`
4. *Attribute* any class with `[ConverterAttribute]`: _`public class MyConverter { ... }`_.    
   Subsequently, attribute the converting methods using `[ConverterMethodAttribute]`: _`public int MyConverter(string attribute){ ... }`__
5. **Done!**

Now, invoke conversions in your code anywhere as follows:
   var castedInt = "500s".CastTo<int>();
Use library functions which suit the change of type descriptively:



### Code Glance

Provided below is an abbreviated example of what code may look like in your project:

   using System.Runtime.CompilerServices;
   // IPolyNucleotide.cs
   public interface IPolyNucleotide { ... }

   // used for "Tranform-Aliasing"
   delegate DNA Complimentary(string dnaSequence, AModelClass arguments);

   // DNA.cs
   public class DNA : IPolyNucleotide
       protected IProtein ToProtein(string dnaSequence, bool homologyLookup = false)
           ... ...

       public static DNA Complimentary(string dnaSequence, AModelClass arguments)
           ... ...

Version History

Version Downloads Last updated (current version) 186 11/1/2016 99 11/1/2016 98 11/1/2016 100 11/1/2016 106 10/19/2016 108 10/17/2016 163 10/17/2016 101 10/17/2016 104 10/14/2016 101 10/14/2016 101 10/14/2016 102 10/13/2016 99 10/13/2016
3.2.0 98 10/13/2016 106 10/9/2016 235 10/9/2016 537 9/21/2016
3.1.0 101 10/3/2016 113 9/13/2016
3.0.1 103 10/3/2016