Beispiel #1
0
 public AssemblyReferenceResolver(IRawModuleBytesProvider rawModuleBytesProvider, IAssemblyResolver assemblyResolver, ModuleDef defaultSourceModule, bool makeEverythingPublic)
 {
     this.rawModuleBytesProvider = rawModuleBytesProvider;
     this.assemblyResolver       = assemblyResolver;
     this.defaultSourceModule    = defaultSourceModule;
     this.makeEverythingPublic   = makeEverythingPublic;
 }
Beispiel #2
0
 public EditMethodCodeVM(IRawModuleBytesProvider rawModuleBytesProvider, IOpenFromGAC openFromGAC, IOpenAssembly openAssembly, ILanguageCompiler languageCompiler, IDecompiler decompiler, MethodDef methodToEdit, IList <MethodSourceStatement> statementsInMethodToEdit)
     : base(rawModuleBytesProvider, openFromGAC, openAssembly, languageCompiler, decompiler, methodToEdit.Module)
 {
     this.methodToEdit     = methodToEdit;
     methodSourceStatement = statementsInMethodToEdit.Count == 0 ? (MethodSourceStatement?)null : statementsInMethodToEdit[0];
     StartDecompile();
 }
Beispiel #3
0
		EditCodeVMCreator(IRawModuleBytesProvider rawModuleBytesProvider, IOpenFromGAC openFromGAC, IDocumentTreeView documentTreeView, IDecompilerService decompilerService, [ImportMany] IEnumerable<ILanguageCompilerProvider> languageCompilerProviders) {
			this.rawModuleBytesProvider = rawModuleBytesProvider;
			this.openFromGAC = openFromGAC;
			openAssembly = new OpenAssembly(documentTreeView.DocumentService);
			this.decompilerService = decompilerService;
			this.languageCompilerProviders = languageCompilerProviders.OrderBy(a => a.Order).ToArray();
		}
Beispiel #4
0
 EditCodeVMCreator(IRawModuleBytesProvider rawModuleBytesProvider, IOpenFromGAC openFromGAC, IDocumentTreeView documentTreeView, IDecompilerService decompilerService, [ImportMany] IEnumerable <ILanguageCompilerProvider> languageCompilerProviders)
 {
     this.rawModuleBytesProvider = rawModuleBytesProvider;
     this.openFromGAC            = openFromGAC;
     openAssembly                   = new OpenAssembly(documentTreeView.DocumentService);
     this.decompilerService         = decompilerService;
     this.languageCompilerProviders = languageCompilerProviders.OrderBy(a => a.Order).ToArray();
 }
Beispiel #5
0
		public EditClassVM(IRawModuleBytesProvider rawModuleBytesProvider, IOpenFromGAC openFromGAC, IOpenAssembly openAssembly, ILanguageCompiler languageCompiler, IDecompiler decompiler, IMemberDef defToEdit, IList<MethodSourceStatement> statementsInMethodToEdit)
			: base(rawModuleBytesProvider, openFromGAC, openAssembly, languageCompiler, decompiler, defToEdit.Module) {
			this.defToEdit = defToEdit;
			nonNestedTypeToEdit = defToEdit as TypeDef ?? defToEdit.DeclaringType;
			while (nonNestedTypeToEdit.DeclaringType != null)
				nonNestedTypeToEdit = nonNestedTypeToEdit.DeclaringType;
			methodSourceStatement = statementsInMethodToEdit.Count == 0 ? (MethodSourceStatement?)null : statementsInMethodToEdit[0];
			StartDecompile();
		}
Beispiel #6
0
 protected EditCodeVM(IRawModuleBytesProvider rawModuleBytesProvider, IOpenFromGAC openFromGAC, IOpenAssembly openAssembly, ILanguageCompiler languageCompiler, IDecompiler decompiler, ModuleDef sourceModule)
 {
     Debug.Assert(decompiler.CanDecompile(DecompilationType.TypeMethods));
     this.openFromGAC               = openFromGAC;
     this.openAssembly              = openAssembly;
     this.languageCompiler          = languageCompiler;
     this.decompiler                = decompiler;
     this.sourceModule              = sourceModule;
     this.assemblyReferenceResolver = new AssemblyReferenceResolver(rawModuleBytesProvider, sourceModule.Context.AssemblyResolver, sourceModule, makeEverythingPublic);
 }
Beispiel #7
0
 public AssemblyReferenceResolver(IRawModuleBytesProvider rawModuleBytesProvider, IAssemblyResolver assemblyResolver, IAssembly tempAssembly, ModuleDef defaultSourceModule, TypeDef nonNestedEditedTypeOrNull, bool makeEverythingPublic)
 {
     Debug.Assert(nonNestedEditedTypeOrNull == null || nonNestedEditedTypeOrNull.Module == defaultSourceModule);
     Debug.Assert(nonNestedEditedTypeOrNull?.DeclaringType == null);
     this.rawModuleBytesProvider    = rawModuleBytesProvider;
     this.assemblyResolver          = assemblyResolver;
     this.tempAssembly              = tempAssembly;
     this.defaultSourceModule       = defaultSourceModule;
     this.nonNestedEditedTypeOrNull = nonNestedEditedTypeOrNull;
     this.makeEverythingPublic      = makeEverythingPublic;
 }
Beispiel #8
0
 public EditClassVM(IRawModuleBytesProvider rawModuleBytesProvider, IOpenFromGAC openFromGAC, IOpenAssembly openAssembly, ILanguageCompiler languageCompiler, IDecompiler decompiler, IMemberDef defToEdit, IList <MethodSourceStatement> statementsInMethodToEdit)
     : base(rawModuleBytesProvider, openFromGAC, openAssembly, languageCompiler, decompiler, defToEdit.Module)
 {
     this.defToEdit      = defToEdit;
     nonNestedTypeToEdit = defToEdit as TypeDef ?? defToEdit.DeclaringType;
     while (nonNestedTypeToEdit.DeclaringType != null)
     {
         nonNestedTypeToEdit = nonNestedTypeToEdit.DeclaringType;
     }
     methodSourceStatement = statementsInMethodToEdit.Count == 0 ? (MethodSourceStatement?)null : statementsInMethodToEdit[0];
     StartDecompile();
 }
		public static CompilerMetadataReference? Create(IRawModuleBytesProvider rawModuleBytesProvider, ModuleDef module, bool makeEverythingPublic) {
			var moduleData = rawModuleBytesProvider.GetRawModuleBytes(module);
			if (moduleData == null)
				return null;
			if (makeEverythingPublic) {
				bool success = new MetadataFixer(moduleData).MakePublic();
				if (!success)
					return null;
			}
			var asmRef = module.Assembly.ToAssemblyRef();
			if (module.IsManifestModule)
				return CompilerMetadataReference.CreateAssemblyReference(moduleData, asmRef, module.Location);
			return CompilerMetadataReference.CreateModuleReference(moduleData, asmRef, module.Location);
		}
Beispiel #10
0
        public static CompilerMetadataReference?Create(IRawModuleBytesProvider rawModuleBytesProvider, IAssembly tempAssembly, ModuleDef module, TypeDef nonNestedEditedTypeOrNull, bool makeEverythingPublic)
        {
            var moduleData = rawModuleBytesProvider.GetRawModuleBytes(module);

            if (moduleData == null)
            {
                return(null);
            }
            var patcher = new ModulePatcher(moduleData, tempAssembly, nonNestedEditedTypeOrNull, makeEverythingPublic);

            if (!patcher.Patch(module, out var newModuleData))
            {
                return(null);
            }
            var asmRef = module.Assembly.ToAssemblyRef();

            if (module.IsManifestModule)
            {
                return(CompilerMetadataReference.CreateAssemblyReference(newModuleData, asmRef, module.Location));
            }
            return(CompilerMetadataReference.CreateModuleReference(newModuleData, asmRef, module.Location));
        }
Beispiel #11
0
        public static CompilerMetadataReference?Create(IRawModuleBytesProvider rawModuleBytesProvider, ModuleDef module, bool makeEverythingPublic)
        {
            var moduleData = rawModuleBytesProvider.GetRawModuleBytes(module);

            if (moduleData == null)
            {
                return(null);
            }
            if (makeEverythingPublic)
            {
                bool success = new MetadataFixer(moduleData).MakePublic();
                if (!success)
                {
                    return(null);
                }
            }
            var asmRef = module.Assembly.ToAssemblyRef();

            if (module.IsManifestModule)
            {
                return(CompilerMetadataReference.CreateAssemblyReference(moduleData, asmRef, module.Location));
            }
            return(CompilerMetadataReference.CreateModuleReference(moduleData, asmRef, module.Location));
        }
Beispiel #12
0
 public AddClassVM(IRawModuleBytesProvider rawModuleBytesProvider, IOpenFromGAC openFromGAC, IOpenAssembly openAssembly, ILanguageCompiler languageCompiler, IDecompiler decompiler, ModuleDef module)
     : base(rawModuleBytesProvider, openFromGAC, openAssembly, languageCompiler, decompiler, module) => StartDecompile();
Beispiel #13
0
		public AddClassVM(IRawModuleBytesProvider rawModuleBytesProvider, IOpenFromGAC openFromGAC, IOpenAssembly openAssembly, ILanguageCompiler languageCompiler, IDecompiler decompiler, ModuleDef module)
			: base(rawModuleBytesProvider, openFromGAC, openAssembly, languageCompiler, decompiler, module) {
			StartDecompile();
		}
Beispiel #14
0
		public EditMethodCodeVM(IRawModuleBytesProvider rawModuleBytesProvider, IOpenFromGAC openFromGAC, IOpenAssembly openAssembly, ILanguageCompiler languageCompiler, IDecompiler decompiler, MethodDef methodToEdit, IList<MethodSourceStatement> statementsInMethodToEdit)
			: base(rawModuleBytesProvider, openFromGAC, openAssembly, languageCompiler, decompiler, methodToEdit.Module) {
			this.methodToEdit = methodToEdit;
			methodSourceStatement = statementsInMethodToEdit.Count == 0 ? (MethodSourceStatement?)null : statementsInMethodToEdit[0];
			StartDecompile();
		}
		public AssemblyReferenceResolver(IRawModuleBytesProvider rawModuleBytesProvider, IAssemblyResolver assemblyResolver, ModuleDef defaultSourceModule, bool makeEverythingPublic) {
			this.rawModuleBytesProvider = rawModuleBytesProvider;
			this.assemblyResolver = assemblyResolver;
			this.defaultSourceModule = defaultSourceModule;
			this.makeEverythingPublic = makeEverythingPublic;
		}