コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 public static bool TryGetCachedResolvedAssembly(AssemblyName assemblyName, out ResolvedAssembly resolvedAssembly);