我知道您可以通过在 AppHostExtensions.cs 中的 appHost 扩展方法中调用 RegisterService 方法在运行时注册服务。效果很好。有没有办法在运行时取消注册服务或清除所有服务并重新注册它们?
我需要这个,因为我想要一个插件类型结构,其中一个 dll 可以放在一个文件夹中,并且 servicestack 在运行时注册所有服务。
我知道您可以通过在 AppHostExtensions.cs 中的 appHost 扩展方法中调用 RegisterService 方法在运行时注册服务。效果很好。有没有办法在运行时取消注册服务或清除所有服务并重新注册它们?
我需要这个,因为我想要一个插件类型结构,其中一个 dll 可以放在一个文件夹中,并且 servicestack 在运行时注册所有服务。
不, ServiceStack不支持在运行时取消连接和取消注册单个服务。
我想出了一个对我有用的简单的蛮力方法。更愿意加载和卸载单个服务,但这种方法可以。
我在我的 AppHost 文件中添加了一个方法
public static void Clear()
{
Instance = null;
}
然后在我想重新加载服务堆栈的 mvc 控制器方法中,我调用
AppHost.Instance.Dispose();
AppHost.Clear();
new AppHost().Init();
这将重新加载所有内容并重新初始化可以获取新插件服务 dll 的服务