加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 应该在ServiceStack中添加哪些插件

发布时间:2020-12-16 03:28:33 所属栏目:asp.Net 来源:网络整理
导读:如此简单但我找不到任何可以解释确切位置的信息或示例.我在这一点上猜测它应该在Configure方法中. 谢谢, 斯蒂芬 全球 public class AppHost : AppHostBase{ public AppHost() : base("Web Services",typeof(ContactsService).Assembly) { } public override
如此简单但我找不到任何可以解释确切位置的信息或示例.我在这一点上猜测它应该在Configure方法中.

谢谢,
斯蒂芬

全球

public class AppHost : AppHostBase
{
    public AppHost() : base("Web Services",typeof(ContactsService).Assembly) { }

    public override void Configure(Container container)
    {
        //Set JSON web services to return idiomatic JSON camelCase properties
        ServiceStack.Text.JsConfig.EmitCamelCaseNames = true;

        //Show StackTrace in Web Service Exceptions
        SetConfig(new EndpointHostConfig { DebugMode = true });


        //Register any dependencies you want injected into your services
        container.Register<ICacheClient>(new MemoryCacheClient());

/*            // Redis
        container.Register<IRedisClientsManager>(c => new PooledRedisClientManager());
        container.Register<IRepository>(c => new Repository(c.Resolve<IRedisClientsManager>()));*/


        container.Register<IRepository>(new Repository());
        container.Register<IBusinessService>(new BusinessService());

        //Configure Custom User Defined REST Paths for your services
        /*ConfigureServiceRoutes();*/

        //Add a request filter to check if the user has a session initialized
        /*this.RequestFilters.Add((httpReq,httpResp,requestDto) =>
        {
            var sessionId = httpReq.GetCookieValue("user-session");
            if (sessionId == null)
            {
                httpResp.ReturnAuthRequired();
            }
        });*/


        RequestFilters.Add((httpReq,requestDto) => new LogRequestAttribute().Execute(httpReq,requestDto));

        Plugins.Add(new SwaggerFeature());
    }

    public static void Start()
    {
        new AppHost().Init();
    }
}

更新

public AppHost() : base("Web Services",typeof(ContactsService).Assembly) { }

public override void Configure(Container container)
{
    ....

    ConfigurePlugins();
}

private void ConfigurePlugins()
{
    Plugins.Add(new ProtoBufFormat());
    Plugins.Add(new RequestLogsFeature());
    Plugins.Add(new SwaggerFeature());
}

private void ConfigureServiceRoutes()
{

}

public static void Start()
{
    new AppHost().Init();
}

解决方法

没有信息,因为 ServiceStack中的 Plugins可以添加到AppHost.Configure()方法中的任何位置.所有ServiceStack配置和依赖项,服务,过滤器等的注册都是如此.

它们在AppHost.Configure()方法中的位置无关紧要,因为它们仅在调用后由ServiceStack初始化.

然而,它们的初始化(即IPlugin.Register()被调用)的顺序与它们的添加顺序相同.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读