使用嵌入式资源覆盖ServiceStack模板

时间:2017-07-10 21:45:39

标签: servicestack

服务堆栈文档说明可以使用静态文件覆盖元和操作页面的模板。

https://github.com/ServiceStack/ServiceStack/wiki/Virtual-file-system

这很有效,但是,我更愿意将我的所有资源部署为嵌入式资源。

我的假设是,通过在hostConfig中注册我的EmbeddedResourceSources,它们将优先于现有的服务堆栈模板,但似乎并非如此:

     SetConfig(new HostConfig
        {
            EmbeddedResourceSources = {typeof(ApiUiResource).Assembly},
            EmbeddedResourceBaseTypes = {typeof(ApiUiResource)},

        });

以上工作用于提供我的所有其他文件,但仍会显示元和操作页面的默认页面。我试图做的是什么?

1 个答案:

答案 0 :(得分:2)

Config.EmbeddedResourceBaseTypes包含加载嵌入式资源虚拟文件的顺序,因此您需要在列表的开头添加您的优先级:

var config = new HostConfig
{
    EmbeddedResourceSources = {typeof(ApiUiResource).Assembly},
};
config.EmbeddedResourceBaseTypes.Insert(0,typeof(ApiUiResource));
SetConfig(config);

另一种解决方案是覆盖AppHost中的GetVirtualFileSources()以更改返回虚拟文件源的顺序,请参阅docs for an example of this