public XamlILNodeEmitResult Emit(XamlEmitContext <IXamlILEmitter, XamlILNodeEmitResult> context, IXamlILEmitter codeGen) { codeGen .Ldloc(context.ContextLocal) .Castclass(context.Configuration.TypeMappings.UriContextProvider) .EmitCall(context.Configuration.TypeMappings.UriContextProvider.FindMethod( "get_BaseUri", _types.Uri, false)) .Ldstr(_text) .Newobj(_types.FontFamilyConstructorUriName); return(XamlILNodeEmitResult.Type(0, _types.FontFamily)); }
public void Emit(IXamlILEmitter emitter) { var locals = new Stack <XamlLocalsPool.PooledLocal>(); // Save all "setter" parameters for (var c = Parameters.Count - 1; c >= 0; c--) { var loc = emitter.LocalsPool.GetLocal(Parameters[c]); locals.Push(loc); emitter.Stloc(loc.Local); } emitter.EmitCall(_getter); while (locals.Count > 0) { using (var loc = locals.Pop()) emitter.Ldloc(loc.Local); } emitter.EmitCall(_adder, true); }