Roslyn用于方法重写和执行的用法

时间:2016-01-20 06:49:51

标签: c# 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();
     }
  }
}

我想测试事务范围回滚的东西,所以我想在上面的代码之间注入一个异常(即想要替换“//需要抛出运行测试用例的异常......”部分)抛出新的异常(“一些消息”))并运行内存重新编译的方法来测试代码执行之间是否出现问题然后会回滚。我不想改变现有代码中的任何内容用于测试回滚方案。

无论我读到什么关于Roslyn(我对这个.NET领域都很陌生),我认为可以使用一些Roslyn API来完成。但是我不确定该怎么做,因为我对它不太熟悉。如果任何人都可以提供一些基于样本的建议,那将非常有帮助。

1 个答案:

答案 0 :(得分:-1)

你绝对可以用Roslyn做到这一点。它将与编写AOP编译器的工具相同。您需要修改代码然后编译它。此外,您还需要对修改后的代码的程序集运行测试。现在如何使用Roslyn完成此操作并不是直截了当的,但您可以尝试here所描述的方法。