首页 > 解决方案 > 我应该什么时候在 Web 服务 (ASMX) 中实例化我的类?

问题描述

我有以下 WebServise (asmx):

public class MyService : WebService
{
    private readonly UserHandler _UserHandler;
    private readonly RoleHandler _RoleHandler;

    public MyService()
    {
        _UserHandler = HandlerFactory.CreateUserHandler();
        _RoleHandler = HandlerFactory.CreateRoleHandler();
    }
}

每次请求都会执行 MyService() 构造函数,那么实例化 _UserHandler 和 _RoleHandler 的位置是否正确?我应该用以下实现替换我当前的代码吗?

public class MyService : WebService
{
    private static readonly UserHandler _UserHandler = HandlerFactory.CreateUserHandler();
    private static readonly RoleHandler _RoleHandler = HandlerFactory.CreateRoleHandler();
}

使用最后一个实现 _UserHandler 和 _RoleHandler 将只实例化一次,所有请求都将使用该实例。

谁是最好的实施?

谢谢。-

标签: c#asp.netweb-servicesasmxlifecycle

解决方案


我更喜欢构造函数。

从语言的角度来看是相同的,两者都是在构造函数上实例化的。
构造函数的形式(对我来说)更好,因为将来如果您愿意,您可以更改构造函数并注入模拟RoleHandlerUserHandler


推荐阅读