示例#1
0
 public EditedMethodUpdater(Lazy <IMethodAnnotations> methodAnnotations, ModuleDocumentNode modNode, MethodDef originalMethod, Emit.MethodBody newBody, MethodDefOptions methodDefOptions)
 {
     this.methodAnnotations = methodAnnotations;
     this.ownerNode         = modNode.Context.DocumentTreeView.FindNode(originalMethod);
     if (ownerNode == null)
     {
         throw new InvalidOperationException();
     }
     this.method = originalMethod;
     this.originalMethodState = new MethodState(originalMethod, methodAnnotations.Value.IsBodyModified(method));
     this.newMethodState      = new MethodState(newBody, methodDefOptions, true);
 }
示例#2
0
 public MethodState(MethodDef method, bool isBodyModified)
 {
     this.body             = method.MethodBody;
     this.methodDefOptions = new MethodDefOptions(method);
     this.isBodyModified   = isBodyModified;
 }
示例#3
0
 public MethodState(Emit.MethodBody body, MethodDefOptions methodDefOptions, bool isBodyModified)
 {
     this.body             = body;
     this.methodDefOptions = methodDefOptions;
     this.isBodyModified   = isBodyModified;
 }
示例#4
0
 public EditedMethod(MethodDef originalMethod, Emit.MethodBody newBody, MethodDefOptions methodDefOptions)
 {
     OriginalMethod   = originalMethod;
     NewBody          = newBody;
     MethodDefOptions = methodDefOptions;
 }