TryResolveAssembly() public method

public TryResolveAssembly ( string assemblyName, Assembly &assembly ) : bool
assemblyName string
assembly System.Reflection.Assembly
return bool
Beispiel #1
0
        public override ImmutableArray <PortableExecutableReference> ResolveReference(string reference, string baseFilePath, MetadataReferenceProperties properties)
        {
            if (reference == null)
            {
                return(ImmutableArray <PortableExecutableReference> .Empty);
            }

            if (!HasValidAssemblyFileExtension(reference))
            {
                // Try to resolve using the default resolver (framework assemblies, e.g. System.Core, System.Xml, etc.)
                ImmutableArray <PortableExecutableReference> result = _scriptResolver.ResolveReference(reference, baseFilePath, properties);

                // If the default script resolver can't resolve the assembly
                // check if this is one of host's shared assemblies
                if (result.IsEmpty)
                {
                    Assembly assembly = null;

                    if (SharedAssemblyProviders.Any(p => p.TryResolveAssembly(reference, out assembly)) ||
                        _extensionSharedAssemblyProvider.TryResolveAssembly(reference, out assembly))
                    {
                        result = ImmutableArray.Create(MetadataReference.CreateFromFile(assembly.Location));
                    }
                }

                return(result);
            }

            return(GetMetadataFromReferencePath(reference));
        }
        public void TryResolveAssembly_ResolvesProviderAssembly()
        {
            var bindingProviders = new Collection<ScriptBindingProvider>
            {
                new TestBindingProvider(new JobHostConfiguration(), new JObject(), null)
            };

            var provider = new ExtensionSharedAssemblyProvider(bindingProviders);

            Assembly assembly;
            bool result = provider.TryResolveAssembly(typeof(TestBindingProvider).Assembly.GetName().Name, out assembly);

            Assert.True(result);
            Assert.NotNull(assembly);
        }