두 개의 dll 파일이 있습니다. DataLayer.dll 및 ProcessLayer.dll을 말합니다. DataLayer.dll는 MyClass에 아래와 같이라는 클래스 가지고참조 된 dll/assembly에서 유형 세부 정보 읽기
public class MyClass
{
public string name;
public int age;
public string aadhar;
}
및 I는 MyClass의 파라미터로서 입력 한 메소드가 제 조립체 ProcessLayer.dll에 DataLayer.dll을 주심을했다.
using DataLayer;
namespace ProcessLayer
{
public class Process
{
public int GetMyClass(MyClass objMy)
{
return objMy.age;
}
}
}
어떻게 반사를 사용하여 ProcessLayer.dll
에서 모든 메소드 매개 변수를 읽을 수 있습니까? 시도 method.GetParameters();
문을 실행하면 오류를
Assembly assembly = Assembly.LoadFile(@"C:\ProcessLayer.dll");
foreach (Type _type in assembly.GetTypes())
{
foreach (var method in _type.GetMethods())
{
var parameters = method.GetParameters();
}
}
를 사용하고있어하고 있습니다.
도와주세요.
Mono.cecil으로 가져 오는 방법은 어떤 생각일까요?
'method.GetParameters() '에서 어떤 오류가 있습니까? – niksofteng
"파일 또는 어셈블리 'DataLayer, 버전 = 1.0.0.0, Culture = neutral, PublicKeyToken = null'또는 해당 종속성 중 하나를로드 할 수 없습니다. 시스템에서 지정된 파일을 찾을 수 없습니다." 오류 있음 –
절대, * 절대 *, ** 사용하지 마십시오 ** LoadFile()을 사용하십시오. 이 시나리오에서는 일반 Load()가 작동합니다. 경로를 지정해야한다면 * LoadFrom()을 사용하십시오. 바라지는 않지만, 루트 디렉토리에서 어셈블리를로드하기 시작하면 아무 일도 일어나지 않습니다. –