bool HasIntegration(ResolvedAssembly resolvedAssembly) { try { var refAsm = Assembly.LoadFrom(resolvedAssembly.Path); if (refAsm == null) { return(false); } if (refAsm.GetReferencedAssemblies().Any(r => r.Name == "Xamarin.Interactive")) { var integrationType = refAsm .GetCustomAttribute <EvaluationContextManagerIntegrationAttribute> () ?.IntegrationType; if (integrationType != null) { return(true); } } return(false); } catch (Exception e) { Log.Warning(TAG, $"Couldn't load assembly {resolvedAssembly.AssemblyName.Name} for " + $"agent integration loading", e); return(false); } }
PortableExecutableReference GetPEReference(ResolvedAssembly resolvedAssembly) { if (resolvedAssembly == null) { return(null); } PortableExecutableReference resolvedReference; if (!resolvedReferences.TryGetValue(resolvedAssembly.AssemblyName.Name, out resolvedReference)) { resolvedReferences = resolvedReferences.Add( resolvedAssembly.AssemblyName.Name, resolvedReference = MetadataReference.CreateFromFile( resolvedAssembly.Path)); } return(resolvedReference); }
public static bool TryGetCachedResolvedAssembly(AssemblyName assemblyName, out ResolvedAssembly resolvedAssembly);