C# 保存当前状态,并在使用xUnit运行测试后将其还原

C# 保存当前状态,并在使用xUnit运行测试后将其还原,c#,windows,.net-core,xunit.net,C#,Windows,.net Core,Xunit.net,我用xUnit为SetDesktopWallpaper()静态方法创建了一些测试。 顾名思义,它改变了当前用户的桌面壁纸 这是我的一个测试 [理论] [InlineData(@.\Resources\JpgWallpaper.jpg”)] [InlineData(@.\Resources\PngWallpaper.png”)] 公共无效更改\u墙纸\u文件\u应\u工作(字符串值) { 常量字符串keyName=@“HKEY\U当前用户\控制面板\桌面”; const string keyVal

我用xUnit为SetDesktopWallpaper()静态方法创建了一些测试。
顾名思义,它改变了当前用户的桌面壁纸

这是我的一个测试

[理论]
[InlineData(@.\Resources\JpgWallpaper.jpg”)]
[InlineData(@.\Resources\PngWallpaper.png”)]
公共无效更改\u墙纸\u文件\u应\u工作(字符串值)
{
常量字符串keyName=@“HKEY\U当前用户\控制面板\桌面”;
const string keyVal1=“墙纸”;
WallChanger.SetDesktopWallpaper(值);
Assert.Equal(Path.GetFullPath(value),Registry.GetValue(keyName,keyVal1,null).ToString());
}
我希望它在测试开始时保存当前的壁纸,并在测试结束时将其放回原处。
如何使用xUnit实现这一点?

根据提供的上下文,我将在测试类中实现
IDisposable
接口,将要恢复的信息保存在构造函数中,然后:;在每个测试用例结束时将其恢复

你也可以使用收集装置,但这是为了更一般的设置/拆卸,所以我认为这不是你的方式

这两个备选方案都有更详细的描述