Dynamiczny dostęp do dll

0

Witam
Potrzeba mi wywołać funkcję z dll która jest zdefiniowana w pliku konfiguracyjnym np. magazyn.dll i funkcja raport.
Czy jest w ogóle możliwe wywołanie funkcji gdy nie jest ona określona na etapie projektu tylko dopiero podczas uruchomienia programu.

W ostateczności może być tak że biblioteka by była określona w konfiguracji, a funkcje by były określone już w projekcie.
W skrócie chodzi o to aby można było wybrać podczas instalacji lub na podstawie licencji jakie moduły są dostępne.

0

Jeśli dll jest biblioteką .NET to:
http://msdn.microsoft.com/en-us/library/b61s44e8%28v=vs.110%29.aspx
i później znajdujesz odpowiednią klasę i metodę i możesz stworzyć z niej delegata.

Jeśli natywną dll (to możesz załadować/zwolnić/podmienić w trakcie działania programu):
http://msdn.microsoft.com/en-us/library/windows/desktop/ms684175%28v=vs.85%29.aspx
lub (łatwiej, najprostszy PInvoke):
http://msdn.microsoft.com/en-us/library/aa288468%28v=vs.71%29.aspx

0

Poza wspomniany przez poprzednika Assembly.LoadFile, przydatna może być refleksja.
Może warto pomyśleć o zastosowaniu MEF, który umożliwia tworzenie systemów w skład których wchodzą pluginy. Nie znam wszystkich szczegółów Twojej implementacji, także może się okazać, że MEF nie jest tutaj opcją.

1 użytkowników online, w tym zalogowanych: 0, gości: 1