當前位置: 首頁>>代碼示例>>C#>>正文


C# Instruction.AppendLdloc方法代碼示例

本文整理匯總了C#中Mono.Cecil.Cil.Instruction.AppendLdloc方法的典型用法代碼示例。如果您正苦於以下問題:C# Instruction.AppendLdloc方法的具體用法?C# Instruction.AppendLdloc怎麽用?C# Instruction.AppendLdloc使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Mono.Cecil.Cil.Instruction的用法示例。


在下文中一共展示了Instruction.AppendLdloc方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: SetCacheKeyLocalVariable

        private Instruction SetCacheKeyLocalVariable(Instruction current, MethodDefinition methodDefinition,
			ILProcessor processor, int cacheKeyIndex, int objectArrayIndex)
        {
            if (methodDefinition.IsSetter || methodDefinition.IsGetter)
            {
                return current.AppendStloc(processor, cacheKeyIndex);
            }
            else
            {
                // Create object[] for string.format
                current =
                    current.AppendLdcI4(processor, methodDefinition.Parameters.Count)
                        .Append(processor.Create(OpCodes.Newarr, methodDefinition.Module.ImportType<object>()), processor)
                        .AppendStloc(processor, objectArrayIndex);

                // Set object[] values
                for (int i = 0; i < methodDefinition.Parameters.Count; i++)
                {
                    current =
                        current.AppendLdloc(processor, objectArrayIndex)
                            .AppendLdcI4(processor, i)
                            .AppendLdarg(processor, !methodDefinition.IsStatic ? i + 1 : i)
                            .AppendBoxIfNecessary(processor, methodDefinition.Parameters[i].ParameterType)
                            .Append(processor.Create(OpCodes.Stelem_Ref), processor);
                }

                // Call string.format
                return
                    current.AppendLdloc(processor, objectArrayIndex)
                        .Append(
                            processor.Create(OpCodes.Call,
                                methodDefinition.Module.ImportMethod<string>("Format", new[] { typeof(string), typeof(object[]) })), processor)
                        .AppendStloc(processor, cacheKeyIndex);
            }
        }
開發者ID:mdabbagh88,項目名稱:MethodCache,代碼行數:35,代碼來源:ModuleWeaver.cs

示例2: InjectIlForDispose

        private void InjectIlForDispose(ILProcessor processor, Instruction returnInstruction, ReferenceContainer references)
        {
            // load context then call dispose
            /*
                nop
                ldloc.0
                callvirt instance void [Yalf]Yalf.IContext::Dispose()
                return mumbo jumbo
             */

            returnInstruction.AppendLdloc(processor, contextVar.Index)
                        .Append(processor.Create(OpCodes.Callvirt, references.DisposeMethod), processor);
        }
開發者ID:mdabbagh88,項目名稱:YALF,代碼行數:13,代碼來源:MethodProcessor.cs


注:本文中的Mono.Cecil.Cil.Instruction.AppendLdloc方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。