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);
            }