示例#1
0
 public void AddAlternativeAssemblyName(IAssembly asm)
 {
     if (!IsAlternativeAssemblyName(asm))
     {
         alternativeAssemblyNames.Add(asm.ToAssemblyRef());
     }
 }
示例#2
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="assembly">Target assembly</param>
 /// <param name="namespace">Namespace</param>
 public NamespaceReference(IAssembly assembly, string @namespace)
 {
     if (assembly == null)
     {
         throw new ArgumentNullException(nameof(assembly));
     }
     Assembly  = assembly.ToAssemblyRef();
     Namespace = @namespace;
 }
示例#3
0
			public void MarkFailed(IAssembly asm) {
				// Use ToAssemblyRef() to prevent storing a reference to an AssemblyDef
				var asmKey = asm.ToAssemblyRef();
				lock (lockObj) {
					if (failedAsms.Count == 0)
						lastTime = DateTime.UtcNow;
					failedAsms.Add(asmKey);
				}
			}
示例#4
0
			public void MarkFailed(IAssembly asm) {
				// Use ToAssemblyRef() to prevent storing a reference to an AssemblyDef
				var asmKey = asm.ToAssemblyRef();
				lock (lockObj) {
					if (failedAsms.Count == 0)
						lastTime = DateTime.UtcNow;
					isEmpty = false;
					failedAsms.Add(asmKey);
				}
			}
示例#5
0
 public void BreakOnLoadAssembly(IAssembly assembly, Action <IDebuggerAssembly> action, AssemblyNameComparerFlags flags)
 {
     if (assembly == null)
     {
         throw new ArgumentNullException(nameof(assembly));
     }
     assembly = assembly.ToAssemblyRef();            // Prevent storing AssemblyDef refs
     // Use the LoadModule event since without a module, we won't know the full assembly name
     CreateBreakpoint(DebugEventKind.LoadModule, (bp, ctx) => {
         var c        = (ModuleEventContext)ctx;
         var comparer = new AssemblyNameComparer(flags);
         var asm      = c.Module.Assembly;
         if (!comparer.Equals(assembly, new AssemblyNameInfo(asm.FullName)))
         {
             return(false);
         }
         bp.Remove();
         action?.Invoke(asm);
         return(true);
     });
 }
示例#6
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="assembly">Target assembly</param>
 /// <param name="namespace">Namespace</param>
 public NamespaceReference(IAssembly assembly, string @namespace)
 {
     Assembly  = assembly.ToAssemblyRef();
     Namespace = @namespace;
 }
示例#7
0
		TypeDef InitType(IAssembly assembly, string ns, string name) {
			return typeResolver.ResolveThrow(new TypeRefUser(module, ns, name, assembly.ToAssemblyRef()));
		}
示例#8
0
 TypeDef InitType(IAssembly assembly, string ns, string name) => typeResolver.ResolveThrow(new TypeRefUser(module, ns, name, assembly.ToAssemblyRef()));
示例#9
0
 public AssemblyRef FindAssemblyRef(TypeRef nonNestedTypeRef)
 {
     return(assemblyDef.ToAssemblyRef());
 }
示例#10
0
		/// <summary>
		/// Constructor
		/// </summary>
		/// <param name="assembly">Target assembly</param>
		/// <param name="namespace">Namespace</param>
		public NamespaceReference(IAssembly assembly, string @namespace) {
			if (assembly == null)
				throw new ArgumentNullException(nameof(assembly));
			Assembly = assembly.ToAssemblyRef();
			Namespace = @namespace;
		}
示例#11
0
 public AssemblyRef FindAssemblyRef(TypeRef nonNestedTypeRef) => assemblyDef.ToAssemblyRef();
示例#12
0
		public void BreakOnLoadAssembly(IAssembly assembly, Action<IDebuggerAssembly> action, AssemblyNameComparerFlags flags) {
			if (assembly == null)
				throw new ArgumentNullException(nameof(assembly));
			assembly = assembly.ToAssemblyRef();// Prevent storing AssemblyDef refs
			// Use the LoadModule event since without a module, we won't know the full assembly name
			CreateBreakpoint(DebugEventKind.LoadModule, (bp, ctx) => {
				var c = (ModuleEventContext)ctx;
				var comparer = new AssemblyNameComparer(flags);
				var asm = c.Module.Assembly;
				if (!comparer.Equals(assembly, new AssemblyNameInfo(asm.FullName)))
					return false;
				bp.Remove();
				action?.Invoke(asm);
				return true;
			});
		}