Files
@ f2c2ba4ef3d4
Branch filter:
Location: seniordesign-ui/GMap.NET.Core/GMap.NET/Singleton.cs - annotation
f2c2ba4ef3d4
1.4 KiB
text/x-csharp
Removed unneeded code and verified use of functions. project is essentially
complete except for some live testing and cache testing/experiments
complete except for some live testing and cache testing/experiments
65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 65c134a3d619 |
namespace GMap.NET
{
using System;
using System.Diagnostics;
using System.Reflection;
/// <summary>
/// generic for singletons
/// </summary>
/// <typeparam name="T"></typeparam>
public class Singleton<T> where T : new()
{
// ctor
protected Singleton()
{
if(Instance != null)
{
throw (new Exception("You have tried to create a new singleton class where you should have instanced it. Replace your \"new class()\" with \"class.Instance\""));
}
}
public static T Instance
{
get
{
if(SingletonCreator.exception != null)
{
throw SingletonCreator.exception;
}
return SingletonCreator.instance;
}
}
class SingletonCreator
{
static SingletonCreator()
{
try
{
instance = new T();
}
catch(Exception ex)
{
if(ex.InnerException != null)
{
exception = ex.InnerException;
}
else
{
exception = ex;
}
Trace.WriteLine("Singleton: " + exception);
}
}
internal static readonly T instance;
internal static readonly Exception exception;
}
}
}
|