public static Meta_t FromFile(string metafn) { //目录的话,就不要处理了 string reffile = metafn.Substring(0, metafn.LastIndexOf(".meta")); if (Directory.Exists(reffile)) { return(null); } //string key = metafile.Substring(metafile.IndexOf("Assets")); Meta_t v = new Meta_t(); v.fn = reffile; //fileFormatVersion: 2 //guid: 7d6e24a13990b6549b206d11106e445a string[] ll = File.ReadAllLines(metafn); for (int i = 0; i < ll.Length; ++i) { int pos = ll[i].IndexOf("guid: "); if (pos != -1) { v.uuid = ll[i].Substring(6); break; } } return(v); }
//读取本Domain 中DLL中的所有类型 public void LoadDomainDllTypes(string dllName) { Clear(); AppDomain currentDomain = AppDomain.CurrentDomain; Assembly[] assemblyInThisDomain = currentDomain.GetAssemblies(); foreach (Assembly assembly in assemblyInThisDomain) { //UnityEngine.Debug.Log(assembly.GetName().Name); //TODO: 处理xGame 和 CSharp_Assembly.dll if (assembly != null) { string name = assembly.GetName().Name; if (name == dllName) { candi = assembly; break; } } } if (candi != null) { //candi.FullName // "G:\Aotu\worksapce100\Client2\UIBase, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.meta". m_meta = Meta_t.FromFile(candi.Location + ".meta"); Type[] types = candi.GetTypes(); SafeAdd(types); } }
//增加到dic中 static void HandleFileMetaToDic(string metafile, Dictionary <string, Meta_t> dicMetas) { Meta_t v = Meta_t.FromFile(metafile); if (v != null) { dicMetas.Add(v.uuid, v); } }