Figure 3 Class Generation

Custom Template

public sealed class <%= ClassName %> 
{
      private static volatile <%= ClassName %> _instance;
      private <%= ClassName %>() {}
      private static readonly object _syncRoot = new object();

      public static <%= ClassName %> Value
      {
            get 
            {
                  if (_instance == null)
                  {
                        lock(_syncRoot) 
                        {
                              if (_instance == null) 
                              { 
                                    _instance = new <%= ClassName %>();
                              }
                        }
                  }
                  return _instance;
            }
      }      
}

SingletonClass

public sealed class SingletonClass 
{
      private static volatile SingletonClass _instance;
      private SingletonClass() {}
      private static readonly object _syncRoot = new object();

      public static SingletonClass Value
      {
            get 
            {
                  if (_instance == null)
                  {
                        lock(_syncRoot) 
                        {
                              if (_instance == null) 
                              { 
                                    _instance = new SingletonClass();
                              }
                        }
                  }
                  return _instance;
            }
      }      
}

Figure 8 NAnt Build File
กก

<?xml version="1.0"?>
<project name="NUnit Example" default="build" basedir=".">
    <description>The NUnit Example Project</description>
    <property name="debug" value="true"/>
    <target name="build" description="compiles the source code">
        <csc target="library" output=".\bin\debug\NUnitExample.dll" 
                debug="${debug}">
            <references>
                <includes name="C:\program files\NUnit 
             V2.1\bin\NUnit.Framework.dll" />
            </references>
            <sources>
                <includes name="HashtableTest.cs"/>
            </sources>
        </csc>
    </target>
</project>