Возможно ли в .NET выполнить метод (делегировать, статический метод, что угодно) в дочернем процессе? System.Diagnostics.Process
похоже, требует фактического имени файла, что означает, что требуется отдельный исполняемый файл.
То, что я пытаюсь сделать, - проверить в unit test, что ресурс ОС очищается при завершении процесса. Я знаю, что для создания такой сборки и ее выполнения можно использовать генерацию CodeDOM или IL, но вся цель модульных тестов заключается в том, чтобы изолировать составные части, а не создавать сложность. По этой же причине я хотел бы избежать отдельной сборки вообще.
В идеале я бы сделал что-то вроде:
public static void CreateCounter()
{
var counter = new PerformanceCounter("category", "counter", "instance");
counter.InstanceLifetime = PerformanceCounterInstanceLifetime.Process;
}
[Test]
public void TestResourceDisposal()
{
// Start child process to execute CreateCounter()
...
// verify the resource is disposed
}