You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.6 KiB
98 lines
2.6 KiB
using System; |
|
using System.Diagnostics; |
|
using System.Reflection; |
|
using KGIS.Plugin.LayerProperty.Interface; |
|
using KGIS.Plugin.LayerProperty.Model; |
|
|
|
namespace KGIS.Plugin.LayerProperty.Utils.Storage |
|
{ |
|
public class RDBHelperStorage : AbstractStorage<ICoreRDBHelper> |
|
{ |
|
private static RDBHelperStorage rdbHelperStorage; |
|
private static IRDBFactory rdbfactory; |
|
private AbstractStorage<ICoreRDBHelper>.Collections _collection |
|
{ |
|
get |
|
{ |
|
return base.Collection; |
|
} |
|
} |
|
public new static AbstractStorage<ICoreRDBHelper>.Collections Collection |
|
{ |
|
get |
|
{ |
|
return RDBHelperStorage.rdbHelperStorage._collection; |
|
} |
|
} |
|
public static ICoreRDBHelper SystemRDBHelper |
|
{ |
|
get |
|
{ |
|
return RDBHelperStorage.rdbHelperStorage._collection["SystemRuntime"]; |
|
} |
|
} |
|
public static IRDBFactory RDBFactory |
|
{ |
|
get |
|
{ |
|
return RDBHelperStorage.rdbfactory; |
|
} |
|
set |
|
{ |
|
MethodBase method = new StackTrace().GetFrame(1).GetMethod(); |
|
string @namespace = method.DeclaringType.Namespace; |
|
if (!@namespace.Equals("KGIS.DataAccess")) |
|
{ |
|
throw new Exception("此方法只应用于数据访问工厂才可用"); |
|
} |
|
RDBHelperStorage.rdbfactory = value; |
|
} |
|
} |
|
static RDBHelperStorage() |
|
{ |
|
RDBHelperStorage.rdbHelperStorage = new RDBHelperStorage(); |
|
} |
|
private bool _add(ItemInfo<string, ICoreRDBHelper> item) |
|
{ |
|
return base.Add(item); |
|
} |
|
private bool _remove(ItemInfo<string, ICoreRDBHelper> item) |
|
{ |
|
return base.Remove(item); |
|
} |
|
private void _clear() |
|
{ |
|
base.Clear(); |
|
} |
|
public new static bool Add(ItemInfo<string, ICoreRDBHelper> item) |
|
{ |
|
MethodBase method = new StackTrace().GetFrame(1).GetMethod(); |
|
string @namespace = method.DeclaringType.Namespace; |
|
if (!@namespace.Equals("KGIS.DataAccess")) |
|
{ |
|
throw new Exception("此方法只应用于数据访问工厂才可用"); |
|
} |
|
return RDBHelperStorage.rdbHelperStorage._add(item); |
|
} |
|
public new static bool Remove(ItemInfo<string, ICoreRDBHelper> item) |
|
{ |
|
MethodBase method = new StackTrace().GetFrame(1).GetMethod(); |
|
string @namespace = method.DeclaringType.Namespace; |
|
if (!@namespace.Equals("KGIS.DataAccess")) |
|
{ |
|
throw new Exception("此方法只应用于数据访问工厂才可用"); |
|
} |
|
return RDBHelperStorage.rdbHelperStorage._remove(item); |
|
} |
|
public new static void Clear() |
|
{ |
|
MethodBase method = new StackTrace().GetFrame(1).GetMethod(); |
|
string @namespace = method.DeclaringType.Namespace; |
|
if (!@namespace.Equals("KGIS.DataAccess")) |
|
{ |
|
throw new Exception("此方法只应用于数据访问工厂才可用"); |
|
} |
|
RDBHelperStorage.rdbHelperStorage._clear(); |
|
} |
|
} |
|
}
|
|
|