GMap.NET.Core/GMap.NET.CacheProviders/SQLitePureImageCache.cs
(开头部分) 28KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
namespace GMap.NET.CacheProviders
{
#if SQLite
using System.Collections.Generic;
using System.Data.Common;
using System.IO;
using System.Text;
using System;
using System.Diagnostics;
using System.Globalization;
using GMap.NET.MapProviders;
using System.Threading;
#if !MONO
using System.Data.SQLite;
#else
using SQLiteConnection=Mono.Data.SqliteClient.SqliteConnection;
using SQLiteTransaction=Mono.Data.SqliteClient.SqliteTransaction;
using SQLiteCommand=Mono.Data.SqliteClient.SqliteCommand;
using SQLiteDataReader=Mono.Data.SqliteClient.SqliteDataReader;
using SQLiteParameter=Mono.Data.SqliteClient.SqliteParameter;
#endif
/// <summary>
/// ultra fast cache system for tiles
/// </summary>
internal class SQLitePureImageCache : PureImageCache
{
#if !PocketPC
#if !MONO
static SQLitePureImageCache()
{
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
}
static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
if(args.Name.StartsWith("System.Data.SQLite", StringComparison.OrdinalIgnoreCase))
{
string rootDir = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData) + Path.DirectorySeparatorChar + "GMap.NET" + Path.DirectorySeparatorChar;
string dllDir = rootDir + "DllCache" + Path.DirectorySeparatorChar;
string dll = dllDir + "SQLite_v77_NET" + Environment.Version.Major + "_" + (IntPtr.Size == 8 ? "x64" : "x86") + Path.DirectorySeparatorChar + "System.Data.SQLite.DLL";
if(!File.Exists(dll))
{
string dir = Path.GetDirectoryName(dll);
if(!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
Debug.WriteLine("Saving to DllCache: " + dll);
if(Environment.Version.Major == 2)
{
using(MemoryStream gzipDll = new MemoryStream((IntPtr.Size == 8 ? Properties.Resources.System_Data_SQLite_x64_NET2_dll : Properties.Resources.System_Data_SQLite_x86_NET2_dll)))
{
using(var gs = new System.IO.Compression.GZipStream(gzipDll, System.IO.Compression.CompressionMode.Decompress))
{
后面还有 779 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
