public bool TryGetDependenceList(string assetId, out AssetData[] assetDataDependenceList)
            {
                List <AssetData> temp      = null;
                AssetData        assetData = null;

                if (assetDataMap.TryGetValue(assetId, out assetData))
                {
                    temp = new List <AssetData>();
                    while (assetData != null)
                    {
                        temp.Add(assetData);
                        if (assetData.HasDependence())
                        {
                            assetDataMap.TryGetValue(assetData.dependence, out assetData);
                        }
                        else
                        {
                            assetData = null;
                        }
                    }
                }
                if (temp != null)
                {
                    temp.Reverse();
                }
                assetDataDependenceList = temp == null ? null : temp.ToArray();

                return(temp != null && temp.Count > 0);
            }