当前位置: 首页 > 文档资料 > CatLib 中文文档 >

AppDomain

优质
小牛编辑
127浏览
2023-12-01

您可以通过继承的方式来扩展基础 AppDomain 的行为,下面是 CatLib.ILRuntime.AppDomain 封装的一些方法。

获取 ILRuntime AppDomain

通过Domain属性您可以获取ILRuntime原始的AppDomain。

protected ILRuntimeDomain Domain { get; }

调用热更新主入口

在您的热更新代码都已经加载完成,一切都已经准备就绪的情况下,您需要调用热更新主入口来启动热更新。就如同所有的程序都有一个入口函数一样。

public void Init(string main);

主入口接收一个参数IApplication,为主工程的CatLib应用程序。

示例:

  • 热更新的代码:
namespace Hotfix
{
    public static class Program
    {
        public static void Main(IApplication application)
        {
        }
    }
}
  • 主工程代码:
appDomain.Init("Hotfix.Program.Main");

加载热更新程序集

您在 和项目关联 的时候,需要加载热更新程序集,这样热更新代码才能够被执行。

public virtual void LoadAssembly(Stream dll, Stream symbol = null);

在调试等级为:DebugLevels.Production 的情况下,symbol 调试符将无论传入何值,都将是无效的。

调用热更新的函数

您可以使用Invoke方法来调用一个热更新的函数,一般情况下您不会用到这个方法,因为您和热更新的交互都应该通过CatLib来进行。

public virtual object Invoke(string type, string method, object instance, params object[] @params);

生成热更新的实例

您可以使用CreateInstance来生成热更新中的实例,一般情况下您不会用到这个方法,因为您和热更新的交互都应该通过CatLib来进行。

public virtual object CreateInstance(string type, object[] args = null);

注册 Action 和 Func 委托

  • RegisterActionDelegate
  • RegisterFuncDelegate

您可以通过以上两个函数来向 ILRuntime 注册跨域委托