使用 WebRole.cs 在“OnStart()”中运行自定义代码时,推荐调用 base 的方法是什么.OnStart
本文关键字:OnStart 调用 代码 方法 base 是什么 运行 cs WebRole 使用 自定义 | 更新日期: 2023-09-27 18:34:51
使用 WebRole.cs
配置 IIS 时,建议调用 base.OnStart()
的方法是什么?
public class WebRole : Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint
{
public override bool OnStart()
{
RunMyCode();
return base.OnStart();
}
}
或
public class WebRole : Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint
{
public override bool OnStart()
{
var result = base.OnStart();
if (result == true) { RunMyCode(); }
return result;
}
}
换句话说,"考虑基类的返回值是否有意义?
我(我认为(经历过有时基本函数必须返回false
并且我的代码从未被调用的行为。
根据官方文档,对base.OnStart
的调用是该方法的最后一个语句。这些方法仅作为 API 提供。RoleEntryPoint 是一个抽象类,具有默认的单行实现(或根本没有实现(。同样根据同一文档,您将看到如果返回 False,您的角色实例将被停止(从而导致角色回收并且无法启动(。最后每部纪录片:
通常,应避免从 OnStart 方法返回 false。
如果您查看(使用您选择的 .NET 反编译器(RoleEntryPoint 的源代码,您会发现 OnStart 的默认实现只返回 true:
using System.Threading;
namespace Microsoft.WindowsAzure.ServiceRuntime
{
public abstract class RoleEntryPoint
{
public virtual bool OnStart()
{
return true;
}
public virtual void Run()
{
Thread.Sleep(-1);
}
public virtual void OnStop()
{
}
}
}
它与 SDK 的 v.2.4 一起。自早期 1.xx 版本以来一直如此。