나는 이것을 설명하는 가장 좋은 방법이 확실치 않으므로 이해하지 못한다면 의견을 남겨주세요.(.NET) DLL이로드 된 경우에만 함수를 수행하는 가장 좋은 방법은 무엇입니까?
기본적으로 나는 다양한 프로그램을 사용하는 다양한 작업을위한 몇 가지 라이브러리가 있습니다. 알림은 하나의 예일뿐입니다.
이제 새로운 프로그램을 만들고 있으며 가능한 한 가볍게하고 싶습니다. 내 알림 엔진을 포함하고 싶지만 실제로 많은 사람들이 기능을 사용한다고 생각하지 않으므로 선택적 다운로드와 마찬가지로 기본적으로 포함시키지 않을 것입니다.
어떻게 프로그래밍하나요?
관리되지 않는 Dll과 P/Invoke의 경우 기본적으로 try/catch 루프에서 전체를 포괄 할 수 있지만 관리되는 버전에 대해서는 확신 할 수 없습니다.
지금까지 내가 생각할 수있는 가장 좋은 방법은 DLL 파일이 시작시 존재하는지 확인한 다음 bool 또는 이와 유사한 필드를 설정하고 알림이 해고 될 때마다 if/bool 및 fire를 확인하십시오 ...
디버그 창에서 DLL 파일이 필요할 때만로드된다는 것을 보았습니다. 이 프로그램은 모든 구성 요소가 프로젝트에 표시 될 때 컴파일되지만 DLL이 없으면 최종 사용자 시스템에서 실행됩니까?
더 중요한 것은, 이것을하는 더 좋은 방법이 있습니까?
내 응용 프로그램에서 알림에 대해 아무 것도 갖고 싶지 않고 DLL 파일을 다운로드하면 외부에서이 기능을 추가 할 수 있습니다. notification("blabla");
(또는 비슷한)을 호출하는 것은 몇 가지 추가 바이트를 갖는 것이 세상 끝이 아니지만, 훨씬 더 큰 의도가 있고 이런 종류의 일에 대한 베스트 프랙티스를 알고 싶을 때 훨씬 더 아래로 생각하고 있습니다. .
미묘한 차이가 있지만 경로를 알지 못해도로드가 성공하는지 테스트 할 수 있습니다. 어셈블리 바인딩 구성은 예를 들어, 이름 확인이 작동하는 방법을 알 필요가없는 프로그램없이 플러그인 디렉토리의 위치. 즉, 코드는 실제 실제 어셈블리 파일에 대해 불가지론해야합니다. – harpo
System.Reflection.Assembly를 살펴 보겠습니다. 감사합니다. ... ... 이미 투표를했고 투표를 못하게하겠다고 답한 답장에 공백을 편집했습니다. 관련이 있다고 생각합니다. 더 일찍. – Wil