public void Apply(Solution solution) { RippleLog.Verbose(VerboseFlag); if (CacheFlag.IsNotEmpty()) { solution.UseCache(new NugetFolderCache(solution, CacheFlag.ToFullPath())); } ApplyTo(solution); }
/// <summary> /// 取得指定XML路径下的数据项 /// </summary> /// <param name="xpath">分级对象的路径</param> /// <returns></returns> public virtual object RetrieveObject(string xpath) { try { object cacheObject = RetrieveOriginObject(xpath); CacheFlag cf = (CacheFlag)RetrieveOriginObject(xpath + "flag"); //当标志位中有数据时 if (cf == CacheFlag.CacheHaveData) { string otype = cacheObject.GetType().Name.ToString(); //当缓存类型是数据表类型时 if (otype.IndexOf("Table") > 0) { System.Data.DataTable dt = cacheObject as DataTable; if ((dt == null) || (dt.Rows.Count == 0)) { return(null); } else { return(cacheObject); } } //当缓存类型是CustomEditorButtonInfo[],string[],UserGroupInfo[],ModeratorInfo[],SmiliesInfo[],ForumInfo[] if (otype.IndexOf("[]") > 0) { if (((Array)cacheObject).Length == 0) { return(null); } else { return(cacheObject); } } //当缓存类型是CustomEditorButtonInfo[],string[],UserGroupInfo[],ModeratorInfo[],SmiliesInfo[],ForumInfo[] if (otype.IndexOf("Collection") > 0) { if (((CollectionBase)cacheObject).Count == 0) { return(null); } else { return(cacheObject); } } //当缓存类型是字符串类型时 if (otype == "String") { if (cacheObject.ToString() == "") { return(null); } else { return(cacheObject); } } //当缓存类型是数据行 if (otype.IndexOf("Row") >= 0) { if (cacheObject == null) { return(null); } else { return(cacheObject); } } //当缓存类型是int if (otype.IndexOf("Int") >= 0) { if (((int)cacheObject).Equals(null)) { return(null); } else { return(cacheObject); } } //当缓存类型是SortedList if (otype.IndexOf("SortedList") >= 0) { #if NET1 if (((SortedList)cacheObject).Count == 0) #else if (((Discuz.Common.Generic.SortedList <int, object>)cacheObject).Count == 0) #endif { return(null); } else { return(cacheObject); } } //当缓存类型是CollectionBase if (otype.IndexOf("CollectionBase") >= 0) { if (((CollectionBase)cacheObject).Count == 0) { return(null); } else { return(cacheObject); } } } return(cacheObject); } catch { return(null); } }