코드를 통해 .dll 라이브러리를 C # 프로젝트에 직접로드하는 방법에 대한 몇 가지 게시물을 찾았습니다. 현재 사용중인 코드는 다음과 같습니다.
if (System.IO.File.Exists(dir + lib + ".dll"))
{
Assembly type = Assembly.LoadFrom(dir + lib + ".dll");
object obj1 = type.CreateInstance(_namespace);
assm.Add(obj1);
return assm.Count - 1;
}
else
{
Console.WriteLine(dir + lib + ".dll: file does not exist");
return -1;
}
코드 :
Assembly type = Assembly.LoadFrom(dir + lib + ".dll");
object obj1 = type.CreateInstance(_namespace);
.dll 파일을 찾아 인스턴스로로드 한 다음 클래스를 가져 와서 객체를 생성한다고 가정합니다. 그래서 hello를 출력하는 하나의 함수가있는 라이브러리를 만든 다음 코드에로드 한 다음 클래스의 인스턴스를 생성하여 해당 함수에 액세스 할 수 있습니다. 문제는 내가 코드를 할 때입니다.
object obj1 = type.CreateInstance(_namespace);
obj1은 null이며 함수에 namspace를 제공하는 것을 알고 있지만 (두 번 확인하고 정확함), 그것이 무엇이든 항상 null입니다. 라이브러리가 어셈블리로로드되고 있는지 확인했습니다. 다음은 중단 점을 수행 할 때 어셈블리에 대한 세부 정보입니다 (객체 유형 위로 이동).
{ClassLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null}
귀하의 도움에 미리 감사드립니다. 내 코드에 어떤 문제가 있는지 잘 모르겠습니다.
_namespace 란 무엇입니까? 예를 들어, 클래스의 전체 이름 (네임 스페이스 포함)을 포함해야합니다.System.Collections.ArrayList
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다