12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- using System;
- using System.Collections;
- using CB.LotteryCatchData.Interface;
- namespace CB.LotteryCatchData
- {
- public class CatchProvider
- {
- private CatchProvider()
- { }
- private static Hashtable cacheList = Hashtable.Synchronized(new Hashtable());
- private static object lockObject = new object();
- static CatchProvider()
- { }
- private static object LoadProvider(string typeName)
- {
- try
- {
- object provider = Activator.CreateInstance(Type.GetType(typeName, false, true));
- cacheList.Add(typeName, provider);
- return provider;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- public static ICatchDataProvider GetProvider(string typeName)
- {
- object provider = cacheList[typeName];
- if (null == provider)
- {
- lock (lockObject)
- {
- provider = cacheList[typeName];
- if (null == provider)
- {
- provider = LoadProvider(typeName);
- }
- }
- }
- return provider as ICatchDataProvider;
- }
- public static void ResetProvider()
- {
- cacheList.Clear();
- }
- }
- }
|