oblicz dynamicznie wynik z wyrażenia łańcuchowego

Czy jest na przykład sposób obliczenia wyniku wyrażenia łańcuchowegomystring = "2*a+32-Math.Sin(6)" dynamicznie wiedząc o tyma jest zmienną, którą posiadam, może istnieje jakieś dynamiczne rozwiązanie lub użycieSystem.Reflection

string mystring = "2*a+32-Math.Sin(6)"`;
decimal result = SomeMethod(mystring,3); // where a = 3 for example