c# - 如何从服务堆栈插件添加新端点?

标签 c# servicestack

我是 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/

相关文章:

https - ServiceStack JsonServiceClient 可以向带有自签名证书的 https 发送获取请求吗?

flutter - servicestack-dart如何检查 session 是否已经存在?

c# - Xamarin Forms 相对布局 - 获取内部居中的堆栈布局

c# - 使用 ServiceStack 创建 Json 数组

c# - 使用 C# 使用 "memberOf"属性获取特定组的事件目录计算机

c# - 眼动追踪-估计脸部位置

c# - ServiceStack PooledRedisClient超时异常

asp.net - 启动 ServiceStack 时无法加载类型 'ServiceStack.ServiceHost.IService'

c# - Windows 8 应用商店应用全局 View 模型

c# - 是否有可能在 .NET microframework 4.1 中使用 Regex?