¿Cómo puedo obtener campos utilizados en un método (.NET)?

En .NET, usando la reflexión, ¿cómo puedo obtener las variables de clase que se usan en un método?

Ex:

class A
{
    UltraClass B = new(..);
    SupaClass C = new(..);

    void M1()
    {
        B.xyz(); // it can be a method call
        int a = C.a; // a variable access
    }
}

Nota: GetClassVariablesInMethod (M1 MethodInfo) devuelve las variables B y C. Por variables me refiero a Parámetros de Valor y / o Tipo y Constructor de esa variable específica.

Respuestas a la pregunta(5)

Su respuesta a la pregunta