У меня есть класс и метод, а именно: -Roslyn Использование для перезаписи и выполнения метода
public class Class1
{
public void SomeMethod(int x, int y)
{
using(var scope = new TransactionScope())
{
if(x == 0 && y == 0)
{
//Do Something
}
if(x ==1)
{
//Do something
}
// Need to throw an exception for running a test case to check
// rollback scenario
if(y == 2)
{
//Do something
}
scope.Complete();
}
}
}
Я хочу, чтобы проверить область транзакции отката вещи и поэтому я хочу, чтобы ввести исключение между вышеприведенным кодом (т.е. хочет заменить "// нужно бросить исключение для запуска тестового случая. .. "часть с throw new Exception (" some message ")) и запустить в памяти повторно выполненный метод для проверки, если что-то пойдет не так между выполнением кода, тогда будет откат. Я не хочу ничего менять в моем существующем коде только для тестирования сценария отката.
Независимо от того, что я прочитал о Roslyn (я очень новичок в этом пространстве .NET), я думаю, что это можно сделать с использованием некоторого API Roslyn. Но я точно не знаю, как это сделать, так как я не очень хорошо знаком с тем же. Если кто-то может дать примерное предложение, это было бы очень полезно.
Я бы ввел «Do something», который бросает. Но я буду использовать обычные методы DI. –
Byt, «Roslyn» - это новая платформа компилятора для .NET (Visual C# и Visual Basic) и работает только с текстом исходного кода. Невозможно перекомпилировать. Он просто компилируется! –
@PauloMorgado: Мне казалось, что накладные расходы на меня накладывают что-то (может быть, объект Action method) только для одной цели тестирования, а также нужно будет вызвать действие в коде, и это было бы бесполезно в производственном коде , Если я предоставил относительный путь к API Roslyn, возможно ли выполнить вышеупомянутую цель? Я готов иметь новый файл вместе, что должно быть хорошо в соответствии с принципом Open Closed. –