private static void EmitNameScopeField(XamlIlLanguageTypeMappings mappings, IXamlIlTypeSystem typeSystem, IXamlIlTypeBuilder typebuilder, IXamlIlEmitter constructor) { var nameScopeType = typeSystem.FindType("Avalonia.Controls.INameScope"); var field = typebuilder.DefineField(nameScopeType, ContextNameScopeFieldName, true, false); constructor .Ldarg_0() .Ldarg(1) .Ldtype(nameScopeType) .EmitCall(mappings.ServiceProvider.GetMethod(new FindMethodMethodSignature("GetService", typeSystem.FindType("System.Object"), typeSystem.FindType("System.Type")))) .Stfld(field); }
public static IXamlIlEmitter LdThisFld(this IXamlIlEmitter emitter, IXamlIlField field) => emitter.Ldarg_0().Emit(OpCodes.Ldfld, field);