Получить ссылочные сборки в F # - PullRequest
2 голосов
/ 24 февраля 2010

Я пытаюсь загрузить указанные сборки через итерацию.
Я загружаю сборку и получаю ссылочные сборки с помощью getRefs. getRefs не имеет никаких входных параметров, поэтому должно иметь значение val getRefs: Assembly-> AssemblyName [], но считает, что это unit-> AssemblyName [], есть идеи?


let getreffiles (name:string) =
     let loadAssembly (name:string)=  
         Assembly.Load(name)  
     let getRefs (assembly:Assembly)=  
        assembly.GetReferencedAssemblies  
     //Get the referenced assembly list and print the full name to console  
     name  
     |>loadAssembly  
     |>getRefs   
     |>List.iter (fun s -> 
           printfn "Referenced Assembly name %s  types" s.FullName);;  

Type mismatch. Expecting a (unit -> AssemblyName []) -> 'a  but given a  'b list -> unit     
The type 'unit -> AssemblyName []' does not match the type ''a list'    
C:\Users\Ebru\Documents\Visual Studio 2010\Projects\Find\GetAssembly.fs 

Ответы [ 2 ]

7 голосов
/ 24 февраля 2010

Вы должны выполнить метод GetReferencedAssemblies, добавив () в конце. Без добавления этого «()» вы просто возвращаете ссылку на функцию вместо того, чтобы возвращать результаты функции. Также измените List.iter на Array.iter. GetReferencedAssemblies возвращает и массив, а не список.

let getreffiles (name:string) =
     let loadAssembly (name:string)=  
         Assembly.Load(name)  
     let getRefs (assembly:Assembly)=  
        assembly.GetReferencedAssemblies()
     //Get the referenced assembly list and print the full name to console  
     name  
     |>loadAssembly  
     |>getRefs   
     |> Array.iter (fun s -> 
           printfn "Referenced Assembly name %s  types" s.FullName);;  
0 голосов
/ 24 февраля 2010

Если функция не имеет входов, ее вход имеет тип «единица измерения». Это похоже на void в C, за исключением того, что параметр функции является явным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...