Ich habe zwei DLL-Dateien Sagen wir DataLayer.dll und ProcessLayer.dll. DataLayer.dll hat eine Klasse aufgerufen MyClass wie unten:Lesen der Typdetails von referenzierten DLL/Assembly
public class MyClass
{
public string name;
public int age;
public string aadhar;
}
und ich habe DataLayer.dll in zweiter Baugruppe ProcessLayer.dll referiert die als MyClass ein Verfahren mit dem Eingangsparameter hat.
using DataLayer;
namespace ProcessLayer
{
public class Process
{
public int GetMyClass(MyClass objMy)
{
return objMy.age;
}
}
}
Wie kann ich alle Methodenparameter von ProcessLayer.dll
mit Reflektion lesen? Ich bin mit
Assembly assembly = Assembly.LoadFile(@"C:\ProcessLayer.dll");
foreach (Type _type in assembly.GetTypes())
{
foreach (var method in _type.GetMethods())
{
var parameters = method.GetParameters();
}
}
und bekam einen Fehler beim Versuch method.GetParameters();
Anweisung auszuführen.
Können Sie mir bitte helfen?
Wie bekomme ich es mit Mono.cecil eine Idee?
Welchen Fehler bekommen Sie mit 'method.GetParameters()'? – niksofteng
"Konnte Datei oder Assembly nicht laden, DataLayer, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null 'oder eines seiner Abhängigkeiten. Das System kann die angegebene Datei nicht finden." irrtümlich –
Niemals, nie, nie, benutze LoadFile(). In diesem Szenario sollte einfach Load() funktionieren. Verwenden Sie LoadFrom(), wenn Sie wirklich einen Pfad angeben müssen. Hoffentlich geht das nicht, nichts Gutes passiert, wenn Sie beginnen, Assemblys aus dem Root-Verzeichnis zu laden. –