Click here to Skip to main content
15,895,483 members
Articles / Programming Languages / C# 4.0

Units of Measure Validator for C#

Rate me:
Please Sign up or sign in to vote.
4.66/5 (28 votes)
2 Jul 2012CPOL7 min read 81.4K   2.4K   41  
This library provides a MSBuild task for compile time validation of units of measurement within C# code.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HDLibrary.UnitsOfMeasure
{
    public static class GlobalUnitParser
    {
        private static object syncRoot = new object();

        private static IUnitParser instance;
        public static IUnitParser Instance
        {
            get
            {
                lock (syncRoot)
                {
                    if (instance == null)
                    {
                        instance = ComposedUnitParser.NewDefaultUnitParser();
                        var library = XmlUnitLibrary.NewDefaultLibrary();
                        library.LoadTo(((ComposedUnitParser)instance).GetUnitRegistry(), instance);
                    }
                }
                return instance;
            }
        }

        public static void Initialize(IUnitParser unitParser)
        {
            if (unitParser == null)
                throw new ArgumentNullException("unitParser");

            lock (syncRoot)
            {
                if (instance != null)
                    throw new InvalidOperationException("Global unit parser is already initialized!");

                instance = unitParser;
            }
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Student
Germany Germany
Presently I am a student of computer science at the Karlsruhe Institute of Technology in Germany.

Comments and Discussions