IsolatedStorageSettings线程安全调用方式

提供一个线程安全的访问IsolatedStorageSettings的方式。

/// <summary>
/// IsolatedStorageSettings是非线程安全的,多线程环境下对临界资源的访问应该互斥进行
/// 警告,对于IsolatedStorageSettings的访问都应该通过本类,严禁直接访问。
/// </summary>using System;using System.IO.IsolatedStorage;
public class ApplicationSettingHelper{    private static object _sync = new object();    
/// <summary>    
///     
/// </summary>    
/// <param name="key"></param>    
/// <param name="value"></param>    
/// <returns></returns>    
public static bool AddEntity(string key, object value)    
{        
	bool isAdd = false;        
	try
	{            
		if (!string.IsNullOrEmpty(key) && value != null)            
		{     
			lock (_sync) 
			{   
				if (IsolatedStorageSettings.ApplicationSettings.Contains(key) == false)
				{ 
					IsolatedStorageSettings.ApplicationSettings.Add(key, value);                       
					IsolatedStorageSettings.ApplicationSettings.Save();                       
					isAdd = true;                    
				}                    
				else                    
				{                       
					IsolatedStorageSettings.ApplicationSettings[key] = value;                        
					IsolatedStorageSettings.ApplicationSettings.Save();                      
					isAdd = true;                   
				}               
			}           
		}        
	}       
	catch (Exception exception)       
	{           
		//LoggingHelper.Log("AddEntity", exception, true);           
		throw exception;       
	}       
	return isAdd;    
}    
/// <summary>    
///     
/// </summary>    
/// <param name="key"></param>    
/// <returns></returns>    
public static string GetEntityString(string key)    
{        
	string strCacheEntiy = string.Empty;        
	try 
	{    
		if (!string.IsNullOrEmpty(key))           
		{   
			lock (_sync) 
			{   
				if (IsolatedStorageSettings.ApplicationSettings.Contains(key) == true)                
				{   
					strCacheEntiy = IsolatedStorageSettings.ApplicationSettings[key].ToString();     
				}               
			}         
		}     
	}      
	catch (Exception exception)      
	{    //LoggingHelper.Log("GetEntityString", exception,true);         
		throw exception;       
	}       
	return strCacheEntiy;   
}   
 /// <summary>    
 ///     
 /// </summary>    
 /// <typeparam name="T"></typeparam>    
 /// <param name="key"></param>    
 /// <returns></returns>    
 public static T GetEntityObj<T>(string key)    
 {        
	T objCacheEntity;        
	try        
	{  
		if (!string.IsNullOrEmpty(key))           
		{  
			lock (_sync) 
			{    
				if (IsolatedStorageSettings.ApplicationSettings.Contains(key) == true)  
				{   
					var settings = IsolatedStorageSettings.ApplicationSettings;
					settings.TryGetValue(key, out objCacheEntity);
					return objCacheEntity;
				}            
			}       
		}   
	}        
	catch (Exception exception)       
	{            //LoggingHelper.Log("GetEntityObj", exception,true);          
			throw exception;        
	}        
			return default(T);   
}    
public static bool RemoveEntity(string key)   
 {       
	bool isRemove = false;       
	try        
	{    
		if (!string.IsNullOrEmpty(key)) 
		{   
			lock (_sync)  
			{  
				if (IsolatedStorageSettings.ApplicationSettings.Contains(key) == true)
				{  
					IsolatedStorageSettings.ApplicationSettings.Remove(key); 
					IsolatedStorageSettings.ApplicationSettings.Save(); 
					isRemove = true; 
				}             
			}          
		}     
	}      
	catch (Exception exception)      
	{   
		//LoggingHelper.Log("RemoveEntity", exception,true);
		throw exception;       
	}        
	return isRemove;    
}    
/// <summary>    
///     /
// </summary>   
 /// <param name="key"></param>    
 /// <returns></returns>   
 public static bool IsIsolateStorageKeyExists(string key)    
 {       
	bool isExist = false;        
	try 
	{    
		if (!string.IsNullOrEmpty(key)) 
		{   
			lock (_sync) 
			{  
				isExist = IsolatedStorageSettings.ApplicationSettings.Contains(key);  
			}        
		}       
	}       
	catch (Exception exception)       
	{           
		//LoggingHelper.Log("IsIsolateStorageKeyExists", exception, true);            
			throw exception;        
	}        
	return isExist;    
}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值