鉴于下面的代码,第一个 WebTestingApp 构造函数可以在返回新实例之前调用第二个构造函数吗?我想在构造函数中设置一些只读字段,并且没有复制/粘贴,我看不出我怎么做。
我觉得答案与构造函数链接有关,但我不知道该怎么做,因为第二个 WebTestingApp 构造函数隐式调用 base() (这很重要,因为类的外部用户不应该有提供 IRemoteFile 和 IWebServiceGateway 实例)。
internal WebTestingApp(Result result, BrowserApp browserApp, IRemoteFile remoteFile, IWebServiceGateway webServiceGateway) : base(remoteFile, webServiceGateway)
{
// TODO: Need to invoke WebTestingApp(Result result, BrowserApp browserApp)
}
public WebTestingApp(Result result, BrowserApp browserApp)
{
// Set readonly vars here
}
这是基类 TestingApp 的构造函数:
protected TestingApp() : this(S3File.Instance, WebServiceGateway.Instance) { }
internal TestingApp(IRemoteFile remoteFile, IWebServiceGateway webServiceGateway)
{
this.remoteFile = remoteFile;
this.webServiceGateway = webServiceGateway;
}
WebTestingApp 派生自 TestingApp。S3File 和 WebServiceGateway 是单例。