/// <summary> /// Gets all references (subclass of <see cref="IContentReference" /> and <see cref="UFile" />) from the specified asset /// </summary> /// <param name="obj">The object.</param> /// <returns>A list of references.</returns> public static List<AssetReferenceLink> Visit(object obj) { if (obj == null) throw new ArgumentNullException("obj"); List<AssetReferenceLink> assetReferences = null; lock (CachingLock) { if (enableCaching) { if (CachingReferences.TryGetValue(obj, out assetReferences)) { assetReferences = new List<AssetReferenceLink>(assetReferences); } } } if (assetReferences == null) { assetReferences = new List<AssetReferenceLink>(); var assetReferenceVistor = new AssetReferenceVistor { References = assetReferences }; assetReferenceVistor.Visit(obj); lock (CachingLock) { if (enableCaching) { CachingReferences[obj] = assetReferences; } } } return assetReferences; }
/// <summary> /// Gets all references (subclass of <see cref="IContentReference" /> and <see cref="UFile" />) from the specified asset /// </summary> /// <param name="obj">The object.</param> /// <returns>A list of references.</returns> public static List <AssetReferenceLink> Visit(object obj) { if (obj == null) { throw new ArgumentNullException("obj"); } List <AssetReferenceLink> assetReferences = null; lock (CachingLock) { if (enableCaching) { if (CachingReferences.TryGetValue(obj, out assetReferences)) { assetReferences = new List <AssetReferenceLink>(assetReferences); } } } if (assetReferences == null) { assetReferences = new List <AssetReferenceLink>(); var assetReferenceVistor = new AssetReferenceVistor { References = assetReferences }; assetReferenceVistor.Visit(obj); lock (CachingLock) { if (enableCaching) { CachingReferences[obj] = assetReferences; } } } return(assetReferences); }