我是 Service Stack 的新手,正在为我们拥有的 Service Stack 应用程序创建一个插件库。
目前我有这门课
public class MyPlugin : IPlugin {
public void Register(IAppHost appHost){
appHost.Routes.Add<MyPluginRequest>("/myendpoint", ApplyTo.Get);
}
}
当我添加断点并遍历它时,它会调用代码,并且理想情况下会注册端点。但是当元数据页面拉起时,端点未列出,我无法导航到/myendpoint url。
这是我拥有的服务,但它似乎对 Api 不可见。
public class MyPluginService : Service {
public MyPluginResponse Get(MyPluginRequest request){
///... implementation details
}
}
更新
我将此代码添加到注册函数中:
appHost.GetPlugin<MetadataFeature>().AddPluginLink("myendpoint/", "endpoint custom");
因此它将显示在元数据页面上,但导航到链接时我仍然收到错误
Unable to resolve service 'MyPluginRequest'
最佳答案
Routes.Add
API 仅用于为现有服务注册自定义路由。如果您想动态注册服务,您需要使用 RegisterService<T>
API 而是指定 serviceType
,例如:
public class MyPlugin : IPlugin
{
public void Register(IAppHost appHost)
{
appHost.RegisterService<MyPluginService>("/myendpoint");
}
}
AddPluginLink
仅添加元数据页面的链接:
appHost.GetPlugin<MetadataFeature>()
.AddPluginLink("/myendpoint", "My Custom Endpoint");
关于c# - 如何从服务堆栈插件添加新端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36895136/