private MethodReturnType Copy(DeepCopier copier, MethodReturnType def, IMethodSignature parent) { var ret= new MethodReturnType(parent); ret.ReturnType = CopyReference(copier,def.ReturnType); copier.Log("< MethodReturnType "); copier.CopyAll(def,ret,ret,"Method","ReturnType"); return ret; }
private ExceptionHandler Copy(DeepCopier copier, ExceptionHandler def) { var ret= new ExceptionHandler(def.HandlerType); if(def.CatchType != null) ret.CatchType = CopyReference(copier,def.CatchType); copier.Log("< ExceptionHandler "); copier.CopyAll(def,ret,ret,"CatchType"); return ret; }
/* * COPIES */ private CustomAttribute Copy(DeepCopier copier, CustomAttribute def) { var ret = new CustomAttribute(CopyReference(copier,def.Constructor),def.GetBlob()); copier.Log("< CopyAttributes "); copier.CopyAll(def,ret,ret,"DeclaringType"); return ret; }
private Mono.Cecil.Cil.MethodBody Copy(DeepCopier copier, Mono.Cecil.Cil.MethodBody def, MethodDefinition parent) { var ret = new Mono.Cecil.Cil.MethodBody(parent); copier.Log("< MethodBody "); copier.CopyAll(def,ret,ret,"Method"); return ret; }
private ParameterDefinition Copy(DeepCopier copier, ParameterDefinition def) { var ret = new ParameterDefinition(def.Name, def.Attributes, CopyReference(copier,def.ParameterType)); copier.Log("< Parameter " + ret.Name); copier.CopyAll(def,ret,ret,"Method","ParameterType","MetadataToken"); return ret; }
private VariableDefinition Copy(DeepCopier copier, VariableDefinition def) { var ret = new VariableDefinition(def.Name, CopyReference(copier,def.VariableType)); copier.Log("< Variable " + ret.Name); copier.CopyAll(def,ret,ret,"VariableType"); return ret; }
private TypeDefinition Copy(DeepCopier copier, TypeDefinition def, TypeDefinition declaringType) { var ret = new TypeDefinition("", NamePrefix+def.Name, def.Attributes, CopyReference(copier,def.BaseType)); //ret.Scope = declaringType.Scope; copier.Log("> Type "+def.FullName); copier.Log("< Type "+ret.FullName); copier.CopyAll(def,ret,ret,"Name","DeclaringType","BaseType","MetadataToken","Scope"); return ret; }
private MethodDefinition Copy(DeepCopier copier, MethodDefinition def, TypeDefinition declaringType) { var ret = new MethodDefinition(NamePrefix+def.Name, def.Attributes, CopyReference(copier,def.ReturnType)); //ret.DeclaringType = DestinationType; copier.Log("< Method "+ret.FullName); copier.CopyAll(def,ret,ret,"Name","DeclaringType","ReturnType","MetadataToken"); return ret; }
private PropertyDefinition Copy(DeepCopier copier, PropertyDefinition def, TypeDefinition declaringType) { var ret = new PropertyDefinition(NamePrefix+def.Name, def.Attributes, CopyReference(copier,def.PropertyType)); copier.Log("< Property "+ret.FullName); copier.CopyAll(def,ret,declaringType,"Name","DeclaringType","PropertyType","MetadataToken"); if(ret.GetMethod != null) declaringType.Methods.Add(ret.GetMethod); if(ret.SetMethod != null) declaringType.Methods.Add(ret.SetMethod); return ret; }
private EventDefinition Copy(DeepCopier copier, EventDefinition def, TypeDefinition declaringType) { var ret = new EventDefinition(NamePrefix+def.Name, def.Attributes, CopyReference(copier,def.EventType)); copier.Log("< Event "+ret.FullName); copier.CopyAll(def,ret,declaringType,"Name","DeclaringType","EventType","MetadataToken"); if(ret.RemoveMethod != null) declaringType.Methods.Add(ret.RemoveMethod); if(ret.AddMethod != null) declaringType.Methods.Add(ret.AddMethod); return ret; }
/* * COPY DEFINITIONS */ private FieldDefinition Copy(DeepCopier copier, FieldDefinition def, TypeDefinition declaringType) { var ret = new FieldDefinition(NamePrefix+def.Name, def.Attributes, CopyReference(copier,def.FieldType)); copier.Log("< Field "+ret.FullName); copier.CopyAll(def,ret,declaringType,"Name","DeclaringType","FieldType","MetadataToken"); return ret; }