#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());
}
пожалуйста, перейдите по этой ссылке для получения дополнительной информации