我是Service Stack的新手,我正在为我们拥有的Service Stack应用程序创建一个插件库。
目前我有这个班级
public class MyPlugin : IPlugin {
public void Register(IAppHost appHost){
appHost.Routes.Add<MyPluginRequest>("/myendpoint", ApplyTo.Get);
}
}
当我添加断点并遍历它时,它被调用的代码和理想情况下端点正在注册。但是当元数据页面拉起时,端点没有列出,我无法导航到/ myendpoint网址。
这是我提供的服务,但它似乎对Api不可见。
public class MyPluginService : Service {
public MyPluginResponse Get(MyPluginRequest request){
///... implementation details
}
}
更新
我将此代码添加到注册函数:
appHost.GetPlugin<MetadataFeature>().AddPluginLink("myendpoint/", "endpoint custom");
所以它会出现在MetaData页面上,但是当导航到链接时我仍然会收到错误
无法解析服务&#39; MyPluginRequest&#39;
答案 0 :(得分:3)
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");