// Try System.Reflection.Assembly.Load(string) bool Try_Assembly_Load_String(string assemblyFullName) { var systemAssemblyType = appDomain.GetWellKnownType(DmdWellKnownType.System_Reflection_Assembly, isOptional: true); Debug.Assert((object)systemAssemblyType != null); if ((object)systemAssemblyType == null) { return(false); } var loadMethod = systemAssemblyType.GetMethod(nameof(Assembly.Load), DmdSignatureCallingConvention.Default, 0, systemAssemblyType, new[] { appDomain.System_String }, throwOnError: false); if ((object)loadMethod == null) { return(false); } var runtime = evalInfo.Runtime.GetDotNetRuntime(); var res = runtime.Call(evalInfo, null, loadMethod, new object[] { assemblyFullName }, DbgDotNetInvokeOptions.None); res.Value?.Dispose(); return(res.IsNormalResult); }
// Try System.Reflection.Assembly.Load(string) bool Try_Assembly_Load_String(string assemblyFullName) { var systemAssemblyType = appDomain.GetWellKnownType(DmdWellKnownType.System_Reflection_Assembly, isOptional: true); Debug.Assert((object)systemAssemblyType != null); if ((object)systemAssemblyType == null) { return(false); } var loadMethod = systemAssemblyType.GetMethod("Load", DmdSignatureCallingConvention.Default, 0, systemAssemblyType, new[] { appDomain.System_String }, throwOnError: false); if ((object)loadMethod == null) { return(false); } var runtime = context.Runtime.GetDotNetRuntime(); var res = runtime.Call(context, frame, null, loadMethod, new object[] { assemblyFullName }, cancellationToken); res.Value?.Dispose(); return(res.IsNormalResult); }