一部の自動化テストでブラウザ固有の resx ファイルを使用しようとしています。タイプをインスタンス化したいところに行き詰まっています。誰かが私を正しい方向に向けることができますか? 私は activator.createInstance などを試しましたが、うまくいきませんでした。
public class WebAiiBaseTest : BaseTest
{
private readonly IDictionary<BrowserType, Type> resxMapper = new Dictionary<BrowserType, Type>{
{BrowserType.Chrome, typeof(Chrome)}
, {BrowserType.Safari, typeof(Safari)}
, {BrowserType.FireFox, typeof(Firefox)}
, {BrowserType.InternetExplorer, typeof(InternetExplorer)}
};
[TestFixtureSetUp]
public void FixtureSetup()
{
Initialize();
Launcher.LaunchRepairInformation();
}
[TearDown]
public void TestCleanUp()
{
Launcher.NavigateToRepairInformation();
}
[TestFixtureTearDown]
public void FixtureCleanup()
{
CleanUp();
}
protected object BrowserResx
{
get { return Activator.CreateInstance(resxMapper[ActiveBrowser.BrowserType]); }
}
}
このコードはインスタンスを返しますが、オブジェクト型です。厳密に型指定されたインスタンスを返したいです。このように、CreateInstance のジェネリック オーバーロードを試しました。
return Activator.CreateInstance<resxMapper[ActiveBrowser.BrowserType]>();
しかし、Visual Studio はこの構文を好みません。ここで何が間違っていますか?ヒントやアドバイスをありがとう。
乾杯、
サンディエゴで~ck