始终调用静态构造函数
Always call static constructor
有没有办法始终调用静态 class 的构造函数?经过搜索,我发现它只调用了一次。
我有一个包含很多方法的 class,我的有 20 个方法,但让我们想象一下 class 有 500 个方法。
这 500 个方法都调用了 Web 服务。
现在,在调用网络服务之前,我必须对证书进行安全检查(由于服务器发生变化):
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateRemoteCertificate);
CredentialCache cache = new CredentialCache();
所以我必须在每次调用之前编写该代码。
所有的方法都是静态的,class,所以我的选择是:
- 复制并粘贴所有500个方法中的代码(将创建一个方法来封装这两行)。
- 将静态class转换为实例化class,并将代码放在构造函数中,但我将不得不更改其余代码来创建这个新[=25=的对象], 处理它...
有没有办法一直调用静态构造函数?我看过一些关于方面的东西,但不太确定如何使用它们。
static
构造函数只能 运行 一次。你不会改变它。
正如您所说,最好的解决方案是创建 class 的实例,然后将需要 运行 的代码再次放入构造函数中。在我看来,证书检查需要进行一次,因为证书不会在几秒钟内更改。
没有
一个static constructor只能调用一次,仅用于初始化,不用于逻辑(如身份验证)
使用 class 的 Singleton
实例,而不是实例化或静态 class 实例。
您获得了实例化 class 的强大功能,但可以像静态 class 一样使用它,这意味着您的重复代码问题已解决,您可以像静态 class 一样使用它因为您的单个实例可作为静态 属性.
y如果您想执行安全检查,我建议使用 Singleton 模式。您可以在私有构造函数中进行安全检查,但是请注意,这将是非常错误的。
只会对第一次调用进行安全检查,然后驻留在内存中,其他调用不一定会进行安全检查。
有没有办法始终调用静态 class 的构造函数?经过搜索,我发现它只调用了一次。
我有一个包含很多方法的 class,我的有 20 个方法,但让我们想象一下 class 有 500 个方法。 这 500 个方法都调用了 Web 服务。 现在,在调用网络服务之前,我必须对证书进行安全检查(由于服务器发生变化):
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateRemoteCertificate);
CredentialCache cache = new CredentialCache();
所以我必须在每次调用之前编写该代码。 所有的方法都是静态的,class,所以我的选择是:
- 复制并粘贴所有500个方法中的代码(将创建一个方法来封装这两行)。
- 将静态class转换为实例化class,并将代码放在构造函数中,但我将不得不更改其余代码来创建这个新[=25=的对象], 处理它...
有没有办法一直调用静态构造函数?我看过一些关于方面的东西,但不太确定如何使用它们。
static
构造函数只能 运行 一次。你不会改变它。
正如您所说,最好的解决方案是创建 class 的实例,然后将需要 运行 的代码再次放入构造函数中。在我看来,证书检查需要进行一次,因为证书不会在几秒钟内更改。
没有
一个static constructor只能调用一次,仅用于初始化,不用于逻辑(如身份验证)
使用 class 的 Singleton
实例,而不是实例化或静态 class 实例。
您获得了实例化 class 的强大功能,但可以像静态 class 一样使用它,这意味着您的重复代码问题已解决,您可以像静态 class 一样使用它因为您的单个实例可作为静态 属性.
y如果您想执行安全检查,我建议使用 Singleton 模式。您可以在私有构造函数中进行安全检查,但是请注意,这将是非常错误的。
只会对第一次调用进行安全检查,然后驻留在内存中,其他调用不一定会进行安全检查。