Beispiel #1
0
    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);
    }
Beispiel #2
0
    //读取本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);
        }
    }
Beispiel #3
0
    //增加到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);
        }
    }