Linker.Steps\BodySubstitutionParser.cs (5)
23public BodySubstitutionParser(LinkContext context, Stream documentStream, EmbeddedResource resource, AssemblyDefinition resourceAssembly, string xmlDocumentLocation = "")
35protected override void ProcessAssembly(AssemblyDefinition assembly, XPathNavigator nav, bool warnOnUnresolvedTypes)
41protected override TypeDefinition? ProcessExportedType(ExportedType exported, AssemblyDefinition assembly, XPathNavigator nav) => null;
43protected override bool ProcessTypePattern(string fullname, AssemblyDefinition assembly, XPathNavigator nav) => false;
135void ProcessResources(AssemblyDefinition assembly, XPathNavigator nav)
Linker.Steps\MarkStep.cs (29)
68protected HashSet<AssemblyDefinition> _dynamicInterfaceCastableImplementationTypesDiscovered;
228_dynamicInterfaceCastableImplementationTypesDiscovered = new HashSet<AssemblyDefinition>();
259AssemblyDefinition? startingAssembly = null;
278var coreLib = Context.TryResolve(PlatformAssemblies.CoreLib);
413var assembly = Context.GetLoadedAssembly(assemblyName);
434foreach (var assembly in assembliesToCheck)
597foreach (var assembly in Context.GetReferencedAssemblies().ToArray())
934AssemblyDefinition? assembly;
1045AssemblyDefinition? assembly;
1064AssemblyDefinition assemblyDef = assembly ?? ((MemberReference)context).Module.Assembly;
1171Debug.Assert(provider is ModuleDefinition or AssemblyDefinition);
1268var displayTargetType = GetDebuggerAttributeTargetType(app.Attribute, (AssemblyDefinition)app.Provider);
1465public virtual void MarkAssembly(AssemblyDefinition assembly, DependencyInfo reason, MessageOrigin origin)
1475foreach (Action<AssemblyDefinition> handleMarkAssembly in MarkContext.MarkAssemblyActions)
1512void MarkEntireAssembly(AssemblyDefinition assembly, MessageOrigin origin)
1527void MarkExportedTypes(AssemblyDefinition assembly, MessageOrigin origin)
1539TypeReferenceMarker(AssemblyDefinition assembly, MarkingHelpers markingHelpers)
1545public static void MarkTypeReferences(AssemblyDefinition assembly, MarkingHelpers markingHelpers)
1587void ProcessModuleType(AssemblyDefinition assembly, MessageOrigin origin)
1613Debug.Assert(provider is ModuleDefinition or AssemblyDefinition);
1614var assembly = (provider is ModuleDefinition module) ? module.Assembly : provider as AssemblyDefinition;
1641TypeDefinition? targetType = GetDebuggerAttributeTargetType(assemblyLevelAttribute.Attribute, (AssemblyDefinition)assemblyLevelAttribute.Provider);
1648TypeDefinition? targetType = GetDebuggerAttributeTargetType(assemblyLevelAttribute.Attribute, (AssemblyDefinition)assemblyLevelAttribute.Provider);
1759if (origin.Provider is AssemblyDefinition && TypeMapHandler.IsTypeMapAttributeType(method.DeclaringType))
1946AssemblyDefinition? assembly = Context.Resolve(scope);
2302TypeDefinition? GetDebuggerAttributeTargetType(CustomAttribute ca, AssemblyDefinition asm)
3388var assembly = Context.Resolve(method.DeclaringType.Scope);
3720AssemblyDefinition? assembly = Context.Resolve(method.DeclaringType.Scope);
Linker.Steps\ProcessLinkerXmlBase.cs (9)
43protected readonly (EmbeddedResource Resource, AssemblyDefinition Assembly)? _resource;
56protected ProcessLinkerXmlBase(LinkContext context, Stream documentStream, EmbeddedResource resource, AssemblyDefinition resourceAssembly, string xmlDocumentLocation)
129AssemblyDefinition? assemblyToProcess = null;
148foreach (AssemblyDefinition assembly in _context.GetReferencedAssemblies())
154AssemblyDefinition? assembly = assemblyToProcess ?? _context.TryResolve(name!);
167protected abstract void ProcessAssembly(AssemblyDefinition assembly, XPathNavigator nav, bool warnOnUnresolvedTypes);
169protected virtual void ProcessTypes(AssemblyDefinition assembly, XPathNavigator nav, bool warnOnUnresolvedTypes)
214protected virtual TypeDefinition? ProcessExportedType(ExportedType exported, AssemblyDefinition assembly, XPathNavigator nav) => _context.TryResolve(exported);
228protected virtual bool ProcessTypePattern(string fullname, AssemblyDefinition assembly, XPathNavigator nav)
Linker\AssemblyResolver.cs (17)
46readonly Dictionary<AssemblyDefinition, string> _assemblyToPath = new();
47readonly Dictionary<string, AssemblyDefinition> _pathToAssembly = new();
62public IDictionary<string, AssemblyDefinition> AssemblyCache { get; } = new Dictionary<string, AssemblyDefinition>(StringComparer.OrdinalIgnoreCase);
64public string GetAssemblyLocation(AssemblyDefinition assembly)
82AssemblyDefinition? ResolveFromReferences(AssemblyNameReference name)
105public AssemblyDefinition? Resolve(AssemblyNameReference name, bool probing)
107if (AssemblyCache.TryGetValue(name.Name, out AssemblyDefinition? asm))
154public AssemblyDefinition GetAssembly(string file)
159if (_pathToAssembly.TryGetValue(file, out var loadedAssembly))
171AssemblyDefinition result = ModuleDefinition.ReadModule(viewStream, _defaultReaderParameters).Assembly;
189public virtual AssemblyDefinition? Resolve(AssemblyNameReference name)
194AssemblyDefinition IAssemblyResolver.Resolve(AssemblyNameReference name, ReaderParameters parameters)
202AssemblyDefinition? SearchDirectory(AssemblyNameReference name)
225public virtual void CacheAssembly(AssemblyDefinition assembly)
227if (AssemblyCache.TryGetValue(assembly.Name.Name, out var existing))
259foreach (var asm in AssemblyCache.Values)
Linker\EmbeddedXmlInfo.cs (8)
15static EmbeddedResource? GetEmbeddedXml(AssemblyDefinition assembly, Func<Resource, bool> predicate)
25public void ProcessDescriptors(AssemblyDefinition assembly, LinkContext context)
49public SubstitutionInfo? ProcessSubstitutions(AssemblyDefinition assembly, LinkContext context)
77public AttributeInfo? ProcessAttributes(AssemblyDefinition assembly, LinkContext context)
114static bool ShouldProcessRootDescriptorResource(AssemblyDefinition assembly, LinkContext context, string resourceName)
134protected virtual DescriptorMarker GetExternalResolveStep(LinkContext context, EmbeddedResource resource, AssemblyDefinition assembly)
139protected virtual BodySubstitutionParser GetExternalSubstitutionParser(LinkContext context, EmbeddedResource resource, AssemblyDefinition assembly)
144protected virtual LinkAttributesParser GetExternalLinkAttributesParser(LinkContext context, EmbeddedResource resource, AssemblyDefinition assembly)