Beispiel #1
0
        string GetNameToMatch(PEFile module, AssemblySearchKind kind)
        {
            switch (kind)
            {
            case AssemblySearchKind.FullName:
                return(module.FullName);

            case AssemblySearchKind.Name:
                return(module.Name);

            case AssemblySearchKind.FilePath:
                return(module.FileName);
            }

            if (!module.IsAssembly)
            {
                return(null);
            }

            var metadata   = module.Metadata;
            var definition = module.Metadata.GetAssemblyDefinition();

            switch (kind)
            {
            case AssemblySearchKind.Culture:
                if (definition.Culture.IsNil)
                {
                    return("neutral");
                }
                return(metadata.GetString(definition.Culture));

            case AssemblySearchKind.Version:
                return(definition.Version.ToString());

            case AssemblySearchKind.PublicKey:
                return(module.Metadata.GetPublicKeyToken());

            case AssemblySearchKind.HashAlgorithm:
                return(definition.HashAlgorithm.ToString());

            case AssemblySearchKind.Flags:
                return(definition.Flags.ToString());
            }

            return(null);
        }
Beispiel #2
0
 public AssemblySearchStrategy(IProducerConsumerCollection <SearchResult> resultQueue, string[] terms, AssemblySearchKind searchKind)
     : base(resultQueue, terms)
 {
     this.searchKind = searchKind;
 }
Beispiel #3
0
 public AssemblySearchStrategy(SearchRequest request,
                               IProducerConsumerCollection <SearchResult> resultQueue, AssemblySearchKind searchKind)
     : base(request, resultQueue)
 {
     this.searchKind = searchKind;
 }
Beispiel #4
0
 public AssemblySearchStrategy(string term, IProducerConsumerCollection <SearchResult> resultQueue, AssemblySearchKind searchKind)
     : this(resultQueue, new[] { term }, searchKind)
 {
 }