Получение типов из библиотеки DLL?

#c# #dll

#c# #dll

Вопрос:

Я получил следующий код для создания библиотеки DLL :

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;

namespace Plugin
{

    public class QtObject : DependencyObject
    {
        [...]
    }

    public class Timer : DependencyObject
    {
        [...]
    }
}
 

Я взял DLL и хотел проанализировать ее с помощью этого кода :

 var library = Assembly.LoadFrom(libraryPath);
IEnumerable<Type> types = library.GetTypes();
 

И во второй строке я получил следующую ошибку :
«Не удается загрузить один или несколько запрошенных типов. Извлеките свойство LoaderExceptions для получения дополнительной информации. »

И, насколько я знаю, я должен получить 2 «объекта» в моей коллекции, соответствующих моим классам нет?

Спасибо в adavance за любую помощь.

Комментарии:

1. Что говорит LoaderExpection свойство?

Ответ №1:

Возможно, приложение, которое читает dll, не ссылается на некоторые ссылки вашей dll.

Комментарии:

1. отсутствовала ссылка, да: (благодаря «Уве Кейму» ошибка подсказала мне, какая именно!

Ответ №2:

как насчет того , чтобы сделать это ?….

   Assembly SampleAssembly;
  SampleAssembly = Assembly.LoadFrom("c:\Sample.Assembly.dll");
  MethodInfo Method = SampleAssembly.GetTypes()[0].GetMethod("Method1");
// Obtain a reference to the parameters collection of the MethodInfo instance.
ParameterInfo[] Params = Method.GetParameters();
// Display information about method parameters.
// Param = sParam1
//   Type = System.String
//   Position = 0
//   Optional=False
foreach (ParameterInfo Param in Params)
{
    Console.WriteLine("Param="   Param.Name.ToString());
    Console.WriteLine("  Type="   Param.ParameterType.ToString());
    Console.WriteLine("  Position="   Param.Position.ToString());
    Console.WriteLine("  Optional="   Param.IsOptional.ToString());
}
 

пожалуйста, перейдите по этой ссылке для получения дополнительной информации