Unity加载第三方C# DLL时,解析不能删除的问题。

把DLL加载到内存可解决问题。

 void T1()
    {
        var p = @"D:\Document\Unity\TestDll\bin\Release\TestDll.dll";
        byte[] bin;
        using (var fs = new FileStream(p, FileMode.Open))
        {
            using (var br = new BinaryReader(fs))
            {
                bin = br.ReadBytes(Convert.ToInt32(fs.Length));
            }
        }
        var assembly = Assembly.Load(bin);

        var t = assembly.GetType("TestDll.test");
        var instance = Activator.CreateInstance(t);
        var m = t.GetMethod("add");
        Debug.Log(m.Invoke(instance, new object[] { 1, 2 }));
    }

  

posted on 2018-01-05 16:15  yungs  阅读(996)  评论(0编辑  收藏  举报