public void Emit(CilWorker IL)
{
var method = _hostMethod;
var declaringType = method.DeclaringType;
var module = declaringType.Module;
if (!method.HasThis)
{
IL.Emit(OpCodes.Ldnull);
IL.Emit(OpCodes.Stloc, _methodReplacementProvider);
return;
}
var getProvider = _resolveGetProviderMethod(module);
IL.Emit(OpCodes.Ldarg_0);
IL.Emit(OpCodes.Callvirt, getProvider);
IL.Emit(OpCodes.Stloc, _methodReplacementProvider);
}