Возможно ли в .NET выполнить метод (делегат, статический метод, что угодно) в дочернем процессе? System.Diagnostics.Process
, похоже, требует фактического имени файла, что означает, что требуется отдельный исполняемый файл.
Я пытаюсь проверить в модульном тесте, что ресурс ОС очищен вверх при выходе из процесса. Я знаю, что мог использовать генерацию 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
}